有2个模型,它们使用has_many:though关系链接。

有:conditions参数,它将在另一个模型表中查找条件,但是是否有某种方法可以在联接表中创建条件?

例如,假设我有:

User
Game
GameUser

一个用户可能有很多游戏,因为一个游戏可能有很多用户。
但是我想在联合表中存储额外的信息,例如,如果用户喜欢或不喜欢该游戏。

我想在我的用户模型中添加一个关系过滤器,如下所示:
has_many :games, :through => 'game_users'
has_many :liked_games, :through => 'game_users', :conditions_join => { :like => true }

有一个漂亮的方法可以拥有此功能吗?

最佳答案

Jochen的链接有一个很好的解决方案–但不建议使用:conditions,而:conditions => ['event_users.active = ?',true]位似乎不太合适。尝试这个:

has_many :game_users
has_many :game_likes, -> { where like: true }, class_name: 'GameUser'
has_many :liked_games, :through => :game_likes, class_name: 'Game', :source => :game

关于ruby-on-rails - rails has_many:through-穿透表中是否可能有条件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4115554/

10-16 12:43