如果我的模型可以属于其他十个模型中的一个,我是否需要在模型中使用十个不同的_id
属性,每条记录留下九个空白?或者有更好的方法来安排它吗?
感谢。
答案 0 :(得分:2)
正如Jakub建议的那样,您可以使用polymorphism,如下所示:
class Bar < ActiveRecord::Base
belongs_to :foo, polymorphic: true
...
end
class Foo1 < ActiveRecord::Base
has_many :bars, as: :foo
...
end
class Foo2 < ActiveRecord::Base
has_many :bars, as: :foo
...
end
...
class Foo9 < ActiveRecord::Base
has_many :bars, as: :foo
end
这将使用id
表中的单个bars
属性,但包含一个额外的类型字段,以指定它所引用的foo
类型。
答案 1 :(得分:1)
多态关联怎么样?如果你需要一个属于许多其他模型的模型。那么你只需要_id和_type,它不会是空的。http://guides.rubyonrails.org/association_basics.html#polymorphic-associations
我在模型中需要十个不同的_id属性,每条记录留下九个空白? - 没有