Activerecord::AliasAssociation
ActiveRecord Association alias
belongs_to
, has_one
, has_many
, has_and_belongs_to_many
Installation
Add this line to your application's Gemfile:
gem 'activerecord-alias_association'
And then execute:
$ bundle
Or install it yourself as:
$ gem install activerecord-alias_association
Usage
class User < ActiveRecord::Base
belongs_to :team, alias: [:organization, :club]
has_one :profile, alias: :info
has_many :posts, alias: :articles
has_many :post_images, through: :users, source: :images, alias: :article_images
has_and_belongs_to_many :tags, alias: :categories
# or
belongs_to :team
alias_association :organization, :team
has_one :profile
alias_association :info, :profile
has_many :posts
alias_association :articles, :posts
has_many :post_images, through: :users, source: :images
alias_association :article_images, :post_images
has_and_belongs_to_many :tags
alias_association :categories, :tags
end
Accessors & Constructors
user = User.first
# belongs_to, has_one
user.organization
user.organization=
user.build_organization
user.create_organization
user.create_organization!
user.reload_organization
# nas_many, has_and_belongs_to_many
user.posts
user.posts=
user.post_ids
user.post_ids=
ActiveRecord QueryMethods
User.includes(:organization, :posts, :tags)
User.preload(:organization, :posts, :tags)
User.eager_load(:organization, :posts, :tags)
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/activerecord-alias_association. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in the Activerecord::AliasAssociation project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.