1

正如标题所示,这没有任何意义。想象一下场景:

我有以下模型:GameGameTypeChampion。我希望只有特定的游戏GameType(如 MOBA)与模型有has_many关系Champion;其他人(如 FPS 等)不会。

我的第一个想法是创建一个GameTypeMoba抽象类,所有从它继承的类都可以拥有它的一些属性(例如拥有冠军)。但是,我知道这没有意义,因为未绑定到表的类不能具有表关系。此外,如果我能以某种方式将它组合在一起,它似乎只是一种糟糕的 WET(与 DRY 相对)的方法。

我希望有人有一个简单的解决方案,涉及凌乱的应用程序逻辑。尽管此时我也接受“迟到,上床睡觉”。

4

2 回答 2

0

查看 Rails 指南“has_many”关联参考 (http://guides.rubyonrails.org/association_basics.html#has_many-association-reference),您可以在关联声明中使用条件选项。文档中提供的示例:

class Customer < ActiveRecord::Base
  has_many :confirmed_orders, :class_name => "Order",
    :conditions => "confirmed = 1"
end

在您的情况下,我假设您希望将 "GameType" 的 :class_name 与 :conditions => "MOBA =" 一起使用。

于 2012-08-11T08:06:25.923 回答
0

Mischa 是对的,在这种情况下,似乎没有什么可以做的更好/更清洁的事情了。为记录子集建立不需要的关系并不是什么大问题。

于 2012-08-27T07:47:53.500 回答