Rails 4.2 中的连接范围

Scope with joins in Rails 4.2

我有类似于

的代码
class Article < ActiveRecord::Base
  has_many :comments
  scope :with_comments, joins(:comments)
end

基于this answer,但是当我在Rails 4.2 中使用它时,我得到

/Users/agrimm/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activerecord-4.2.0/lib/active_record/scoping/named.rb:143:in `scope': The scope body needs to be callable. (ArgumentError)

在 Rails 4 和 Rails 4.2 之间是否更改了有关允许范围内联接的规则?我可以看到 4.2 release notes 中提到了联接,但我不知道它是否适用于此处。

你能这样试试吗?

scope :with_comments, -> { joins(:comments)}

The scope body needs to be callable. (ArgumentError)

这应该有效

scope :with_comments, -> { joins(:comments) }

很好的解释

你的语法有误。你应该这样做:

scope :with_comments, -> { joins(:comments) }

你应该看看这个documentation