对于#<activerecord :: relation [] =“”> </activerecord :: relation>的未定义方法`call'

时间:2014-10-16 20:38:51

标签: ruby-on-rails ruby activerecord

 def index
    @posts = Post.published

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @posts }
      format.atom
    end
  end

我正在接受这个错误。我是新的RoR任何人都可以帮助我。我现在能做什么?

1 个答案:

答案 0 :(得分:7)

您已定义范围,但为其提供了关系而非proc。你可能有这样的事情:

class Post < ActiveRecord::Base
  scope :published, where(published: true)
end

将其更改为:

class Post < ActiveRecord::Base
  scope :published, -> { where(published: true) }
end

将来,请始终发布整个堆栈跟踪以及所涉及的方法。并不总是很容易猜到发生了什么。