Ruby on rails 跨模型链接命名的\u范围?(ActiveRecord,Rails)

Ruby on rails 跨模型链接命名的\u范围?(ActiveRecord,Rails),ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,如果没有,从modela对象引用相关modeld对象的最佳实践是什么。您可能希望避免违反Demeter定律,并为其创建抽象 i、 e.a.modelb.结束(今天)。带有功能(功能) 很高兴了解它: Class ModelA < ActiveRecord::Base has_many :modelb end Class ModelB < ActiveRecord::Base has_many :modelc end Class ModelC < ActiveRec

如果没有,从modela对象引用相关modeld对象的最佳实践是什么。

您可能希望避免违反Demeter定律,并为其创建抽象

i、 e.
a.modelb.结束(今天)。带有功能(功能)

很高兴了解它:

Class ModelA < ActiveRecord::Base
    has_many :modelb
end
Class ModelB < ActiveRecord::Base
   has_many :modelc
end
Class ModelC < ActiveRecord::Base
   has_many :modeld
   named_scope :due_on, lambda {|date| { :conditions => {:due_date => date}}}
end
Class ModelD
   named_scope :has_feature, lambda {|feature| { :conditions => {:feature => feature}}}
end
a = ModelA.find(1)

a.modelb.modelc.due_on(today).modeld.has_feature(somefeature).should return_an_array_of_instances_of_ModelD