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
我有类似于
的代码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