2013-11-27 22 views
4

更换条件我有这样的联想:上的has_many:通过协会,与拉姆达

has_many :foo_participators, through: :foos, source: :user, conditions: "foos.state = 'completed'" 

Rails的告诉我:

弃用警告:在你的Bar.has_many 以下选项:foo_participators声明已弃用::条件。请改用示波器 。例如,以下内容:

has_many :spam_comments, conditions: { spam: true }, class_name: 'Comment' 

应该被改写为以下几点:

has_many :spam_comments, -> { where spam: true }, class_name: 'Comment' 

这可能与我的联想?

回答

4

我问了这个问题后就想到了这一点。出于某种原因,我没有尝试将lambda放在第一位 - 这样做完美无缺。

has_many :foo_participators, ->{where "foos.state = 'completed'"}, through: :foos, source: :user