Sha256: bdf567a1096dca1f4918c890dfee8948e10289cea8fa80255d4cd7bf948cb500
Contents?: true
Size: 1.47 KB
Versions: 1
Compression:
Stored size: 1.47 KB
Contents
module Troles::ActiveRecord class Config < Troles::Common::Config attr_accessor :role_join_model def initialize clazz, options = {} super end def configure_relation case strategy when :ref_many return configure_join_model if role_join_model has_and_belongs_many clazz, role_model, :key => :accounts when :embed_many raise "Embed many configuration not yet implemented for ActiveRecord" end end # AR sets this up ont its own using DB Table info def configure_field end protected def join_key make_key role_join_model end def join_model # UserAccount # has_many :troles, :class_name => 'Role', :through => :users_roles has_many_for clazz, role_model, :through => join_key # has_many :user_roles, :class_name => 'UserRole' has_many_for clazz, role_join_model, :key => join_key # UserRole (custom join class name) # belongs_to :user, :class_name => 'UserAccount' belongs_to_for role_join_model, clazz # belongs_to :role, :class_name => 'Role' belongs_to_for role_join_model, role_model # Role # has_many :accounts, :class_name => 'User', :through => :user_roles has_many_for role, clazz, :through => join_key, :key => :accounts # has_many :user_roles, :class_name => 'UserRole' has_many_for role, role_join_model, :key => join_key end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
troles-0.5.0 | lib/troles/adapters/active_record/config.rb |