2014-11-14 61 views
1

开始使用rails有几个问题。尝试向控制器添加条件.find方法

我正在创建一个目录,最初,所有添加将显示为已批准的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) 

一点帮助将是辉煌的,谢谢!

回答

1

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

@listings = Listing.where(approved: false) 
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 
+0

感谢队友,非常感谢您的帮助。此外,表条目似乎完全显示,而不是显示全名作为视图状态使用listing.fullname - 任何想法,为什么会发生? – 2014-11-14 15:32:00