No commit activity in last 3 years
No release in over 3 years
Add activerecord association alias
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 0
~> 1.3.6

Runtime

>= 5.0.0
 Project Readme

Activerecord::AliasAssociation

Build Status

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.