我有这个协会:
has_many :foo_participators, through: :foos, source: :user, conditions: "foos.state = 'completed'"
Rails告诉我:
弃权警告:Bar.has_many中的以下选项 :foo_participators声明已弃用:: condition。请使用范围 而是阻止。例如,以下内容:
has_many :spam_comments, conditions: { spam: true }, class_name: 'Comment'
应改写如下:
has_many :spam_comments, -> { where spam: true }, class_name: 'Comment'
这与我的关联有可能吗?
答案 0 :(得分:6)
在我提出问题后立即想出来。出于某种原因,我没有尝试过将lambda放在第一位 - 这样做非常有效。
has_many :foo_participators, ->{where "foos.state = 'completed'"}, through: :foos, source: :user