试图为控制器.find方法添加条件

时间:2014-11-14 13:09:43

标签: ruby-on-rails ruby rails-activerecord

从rails开始有一些问题。

我正在创建一个目录,最初,所有添加内容都将显示为已批准的false,直到我手动批准它们为止。

我正在创建管理界面,我可以点击“批准”,因此我需要显示属性为approved = false的所有商家信息。

以下是代码:

  def listings
    @listings = Listing.find(:all, :conditions => "approved = false")
  end

这是错误

Couldn't find all Listings with 'id': (all, {:conditions=>"approved = false"}) (found 0 results, but was looking for 2)

一点帮助就会很棒,谢谢!

2 个答案:

答案 0 :(得分:3)

您使用的是非常旧的find语法(Rails 2.0)。

较新的语法不再使用:all,并且不再将条件传递给find方法。假设您使用的是Rails 4,则等效于

def listings
  @listings = Listing.where(approved: false)
end

你可以使用.all,但在这种情况下它只是语法糖。

def listings
  @listings = Listing.where(approved: false).all
end

答案 1 :(得分:1)

您尝试使用Rails 2.x中的语法。你应该这样做:

@listings = Listing.where(approved: false)