Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Rails不会返回数据库中存在的记录_Mysql_Ruby On Rails_Activerecord_Arel - Fatal编程技术网

Mysql Rails不会返回数据库中存在的记录

Mysql Rails不会返回数据库中存在的记录,mysql,ruby-on-rails,activerecord,arel,Mysql,Ruby On Rails,Activerecord,Arel,这是我一直遇到的一件奇怪的事情,我想知道人们是否可以给我一些关于在哪里寻找问题的建议 我要做的是在模型上运行id查找。当我在某一组记录上运行它时,它们会像预期的那样返回该记录。但是我在数据库mysql中还可以看到大约100条记录,但是运行find命令会返回ActiveRecord::RecordNotFound异常 如果我直接在数据库中创建另一条记录,我也无法提取该记录。但是,如果我在rails控制台中执行新命令,则可以检索该记录。如果执行find_by_sql命令,则可以检索记录 我已经尝试过

这是我一直遇到的一件奇怪的事情,我想知道人们是否可以给我一些关于在哪里寻找问题的建议

我要做的是在模型上运行id查找。当我在某一组记录上运行它时,它们会像预期的那样返回该记录。但是我在数据库mysql中还可以看到大约100条记录,但是运行find命令会返回ActiveRecord::RecordNotFound异常

如果我直接在数据库中创建另一条记录,我也无法提取该记录。但是,如果我在rails控制台中执行新命令,则可以检索该记录。如果执行find_by_sql命令,则可以检索记录

我已经尝试过优化表格,但除此之外,我有点困惑于是什么导致了这一点。我在本地机器上运行带有Ruby 1.8.7和mysql gem的Rails 2.3.12。如果您对可能的原因有任何想法,我们将不胜感激。谢谢


编辑感谢指针-将记录器连接到我的控制台实例,这暴露了问题-一个被遗忘的默认\u范围限制了返回的内容

您的模型中一定有限制SQL查询范围的内容


检查日志中Ruby代码生成的SQL,您将发现有关出错原因的有用提示。

检查控制台日志和生成的SQL语句。感谢指针-找到了错误。