Rails/MYSQL查询即使没有记录也返回值?

Rails/MYSQL查询即使没有记录也返回值?,mysql,ruby-on-rails,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 使用.empty?,因为where将始终返回数组。如果不存在记录,则为空数组 if @page_of_book.em

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

@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

使用
.empty?
,因为where将始终返回数组。如果不存在记录,则为空数组

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

end

使用
.empty?
,因为where将始终返回数组。如果不存在记录,则为空数组

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

end
不应该

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

或者类似的事情?

不应该

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


或者类似的东西?

查询返回一个
数组。即使使用
limit
也会得到一个包含1或0个元素的数组。因此,您的测试需要:

if @page_of_book.empty?
  ...

查询返回一个
数组
。即使使用
limit
也会得到一个包含1或0个元素的数组。因此,您的测试需要:

if @page_of_book.empty?
  ...

谢谢id应该在那里,因为我想调用该记录的.id OK只是名称非常混乱,因为@book\u id表示它是id,所以您使用.id of id;)没有意义没错,这不是个好名字,我有很多相似的变量,这就是为什么:)谢谢。。id应该在那里,因为我想调用该记录的.id OK只是名称非常混乱,因为@book\u id表示它是id,所以您使用.id of id;)没有意义没错,这不是一个好名字,我有很多相似的变量,这就是为什么:)你是对的,谢谢!它成功了,我在网上哪里可以找到类似的参考资料呢?@jakob-最快最简单的方法就是使用Rails控制台。我总是先在控制台中运行这样的查询,然后查看返回的内容。这样你会很快看到它是一个数组。你说得对,谢谢!它成功了,我在网上哪里可以找到类似的参考资料呢?@jakob-最快最简单的方法就是使用Rails控制台。我总是先在控制台中运行这样的查询,然后查看返回的内容。这样你会很快看到它是一个数组。