我有一个游戏模型,它 has_many :texts。问题是我必须根据它们所属的游戏对文本进行不同的排序(是的,丑陋,但它是遗留数据)。我创建了一个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)
除了每次打电话真的没有其他解决方案吗?