【发布时间】:2012-08-14 09:57:41
【问题描述】:
我有一个游戏模型,它有很多:文本。问题是我必须根据它们所属的游戏对文本进行不同的排序(是的,丑陋,但它是遗留数据)。我创建了一个Text.in_game_order_query(game) 方法,它返回适当的排序。
我最喜欢的解决方案是在 Text 模型中放置一个默认范围,但这需要知道它们属于哪个游戏。我也不想为每个游戏的文本创建单独的类 - 有很多游戏,而且还会有更多游戏,所有较新的游戏都将使用相同的顺序。所以我有了另一个想法:在 has_many 中排序文本,当我知道它们属于哪个游戏时:
has_many :texts, :order => Text.in_game_order_query(self)
但是,self 是这里的类,所以这不起作用。
除了每次都调用@game.texts.in_game_order(@game),真的没有别的办法了吗??
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord has-many