即使没有记录,Rails / MYSQL QUERY也会返回值?

时间:2011-08-18 13:23:22

标签: mysql ruby-on-rails

我有一些代码来检查数据库中是否存在记录,但我的问题是该变量即使没有记录也会继续返回结果。

@page_of_book = Page.where({:number => @page, :parent_id => @book_id.id}).limit(1)

if !@page_of_book 
# if no page, create a new page

end

3 个答案:

答案 0 :(得分:2)

使用.empty?,因为总会返回一个数组。如果没有记录,则为空数组。

if @page_of_book.empty?
# if no page, create a new page

end

答案 1 :(得分:1)

查询返回Array。即使您使用limit,您仍将获得具有1或0个元素的数组。所以你的测试需要:

if @page_of_book.empty?
  ...

答案 2 :(得分:0)

不应该

 @page_of_book = Page.where({:number => @page, :parent_id => @book_id.id}).limit(1)

 @page_of_book = Page.where({:number => @page, :parent_id => @book.book_id}).limit(1)

或类似的东西?