Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pluginaweek-polymorphic_identity

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pluginaweek-polymorphic_identity

  • 0.1.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

= polymorphic_identity

+polymorphic_identity+ dynamically generates aliases for polymorphic associations based on the class names of those associations.

== Resources

API

  • http://api.pluginaweek.org/polymorphic_identity

Bugs

Development

Source

  • git://github.com/pluginaweek/polymorphic_identity.git

== Description

Polymorphic associations are not very descriptive when it comes to easily knowing the type of model your interacting with. For example, a typical polymorphic assocation looks like the following:

class Tag < ActiveRecord::Base belongs_to :taggable, :polymorphic => true end

When getting the taggable record, you would normally have to call tag.taggable. However, if you know that the taggable record is just an instance of the Article model, then it would feel more comfortable if you could just call tag.article. polymoprhic_identity makes this possible by dynamically checking the name of the polymorphic record's class and creating methods that allow you to access the polymorphic association based on that class name.

== Usage

=== Example

class Comment < ActiveRecord::Base belongs_to :commentable, :polymorphic => true belongs_to :commenter, :polymorphic => true end

class Article < ActiveRecord::Base has_many :comments, :as => :commentable end

class User < ActiveRecord::Base has_many :comments, :as => :commenter end

c = Comment.find(1) # => #<Tag id: 1, commentable_id: 1, commentable_type: "Article", commenter_id: 1, commenter_type: "User"}> c.commentable # => #<Article id: 1> c.article # => #<Article id: 1> c.commenter # => #<User id: 1> c.user # => #<User id: 1>

== Testing

Before you can run any tests, the following gem must be installed:

To run against a specific version of Rails:

rake test RAILS_FRAMEWORK_ROOT=/path/to/rails

== Dependencies

  • Rails 2.0 or later

FAQs

Package last updated on 10 Aug 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc