我有一些代码来检查数据库中是否存在记录,但我的问题是该变量即使没有记录也会继续返回结果。
@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
答案 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)
或类似的东西?