2016-04-05 19 views
0

Ben:Raylarda has_many ilişkisi ile nasıl adlandırabilirim?

class Foo 
    has_many :bar 
    has_many :baz, through :bar 
end 


class FooTwo 
    has_many :barTwo 
    has_many :baz, through :barTwo 
end 

ben gibi, baz dernek ilişkisi geçmek için abble olması gerekir: bu imkansız ise

Foo.first.baz.relation_through #<=> Foo.first.bar 
FooTwo.first.baz.relation_through #<=> Foo.first.barTwo 

, sadece adını almak can? gibi: http://apidock.com/rails/ActiveRecord/Reflection/ClassMethods/reflect_on_all_associations

Foo.reflect_on_all_associations(:has_many) 

ve sonra adı koparmak:

Foo.first.baz.get_relation_through_name # "bar" 
FooTwo.first.baz.get_relation_through_name # "barTwo" 

cevap

2

bu

Foo.reflect_on_all_associations.find { |association| association.name == :baz}.options[:through] 
deneyin
1

bu arıyoruz.