在Rails中,我可以在另一个模型的模型上设置has_many关系吗?

时间:2011-06-30 18:15:17

标签: ruby-on-rails ruby activerecord has-many belongs-to

有没有什么方法可以在其中一个模型中设置belongs_to / has_many关系的两半?所以我想做类似的事情:

class A < ActiveRecord::Base
end

class B < ActiveRecord::Base
  belongs_to :a
  A.has_many :b
end

显然这不起作用(或者我会用它)但我希望它能解释我的意思......

1 个答案:

答案 0 :(得分:2)

我不确定你为什么这么想,但假设你有充分的理由......

has_many只是ActiveRecord :: Base中定义的一个类方法,因此调用A.has_many :b应该有效。

但是在加载订单的开发过程中,您可能会遇到问题。如果您加载了您提供的示例并调用了a = A.new,则从未加载过类B,因此a不知道A有多个B。在生产中,在开始时加载整个类列表,这不会是一个问题。在开发过程中,您可以使用require语句绕过它,但是,您可以非常强烈地将两个文件耦合在一起。

我没有尝试过,但从理论上讲,这是我唯一能想到的就是阻止你的设置工作。