正如标题所暗示的那样,这没有任何意义。想象一下这个场景:
我有以下模型:Game
,GameType
和Champion
。我希望只有某个GameType
(如MOBA)的游戏才能与has_many
模型建立Champion
关系;其他人(如FPS等)不会。
我的第一个倾向是创建一个GameTypeMoba
抽象类,其中从它继承的所有类都可以具有它的一些属性(例如拥有冠军)。但是,我知道这没有意义,因为没有绑定到表的类不能有表关系。此外,如果我能以某种方式将它一起破解,它看起来就像是一个糟糕的WET(与DRY相反)的方法。
我希望有人有一个简单的解决方案,不会涉及凌乱的应用逻辑。虽然我也接受"延迟,但去睡觉"在这一点上也是如此。
答案 0 :(得分:0)
检查Rails指南“has_many”关联引用(http://guides.rubyonrails.org/association_basics.html#has_many-association-reference),您可以在关联声明中使用condition选项。文档中提供的示例:
class Customer < ActiveRecord::Base
has_many :confirmed_orders, :class_name => "Order",
:conditions => "confirmed = 1"
end
在您的情况下,我假设您希望使用:classType of“GameType”:conditions =&gt; “MOBA =”。
答案 1 :(得分:0)