有没有什么方法可以在其中一个模型中设置belongs_to / has_many关系的两半?所以我想做类似的事情:
class A < ActiveRecord::Base
end
class B < ActiveRecord::Base
belongs_to :a
A.has_many :b
end
显然这不起作用(或者我会用它)但我希望它能解释我的意思......
答案 0 :(得分:2)
我不确定你为什么这么想,但假设你有充分的理由......
has_many
只是ActiveRecord :: Base中定义的一个类方法,因此调用A.has_many :b
应该有效。
但是在加载订单的开发过程中,您可能会遇到问题。如果您加载了您提供的示例并调用了a = A.new
,则从未加载过类B,因此a
不知道A
有多个B
。在生产中,在开始时加载整个类列表,这不会是一个问题。在开发过程中,您可以使用require
语句绕过它,但是,您可以非常强烈地将两个文件耦合在一起。
我没有尝试过,但从理论上讲,这是我唯一能想到的就是阻止你的设置工作。