Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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
Ruby on rails 4 Rails 4-find_by_*在rake任务中不起作用_Ruby On Rails 4_Rake Task - Fatal编程技术网

Ruby on rails 4 Rails 4-find_by_*在rake任务中不起作用

Ruby on rails 4 Rails 4-find_by_*在rake任务中不起作用,ruby-on-rails-4,rake-task,Ruby On Rails 4,Rake Task,我正在运行一个rake任务,并在创建最后一个产品时停止使用byebug 然后我在rake任务buebug和rails控制台中得到了奇怪的输出差异 Product.count在控制台和byebug中都有效,但Product.find\u by\u id仅在控制台中有效。在rake任务中,它返回nil 到目前为止,我用where替换了find_by_*方法,这样验证将通过,rake任务将完成它的工作 谷歌搜索没有帮助。这很奇怪,因为我们在相当少的地方使用find_by_*。至少可以说,发现rake任

我正在运行一个rake任务,并在创建最后一个产品时停止使用byebug

然后我在rake任务buebug和rails控制台中得到了奇怪的输出差异

Product.count在控制台和byebug中都有效,但Product.find\u by\u id仅在控制台中有效。在rake任务中,它返回nil

到目前为止,我用where替换了find_by_*方法,这样验证将通过,rake任务将完成它的工作

谷歌搜索没有帮助。这很奇怪,因为我们在相当少的地方使用find_by_*。至少可以说,发现rake任务中的验证不可靠有点令人担忧

以前有人遇到过这样的问题吗?有没有进一步的想法

除按查找外的所有动态方法。。。然后通过…找到你。。。!不推荐使用

所有具有xxx_by_uu的方法现在都是xxx_by(删除结束时的下划线方法)。因此,您可以使用:

  • 通过……找到你。。。通过……找到你。。。!或
  • 其中(…)。指向返回数组的对象,或者其中(…)。最后一个指向返回对象
请注意,其中(…)返回的是关系,而不是数组


另外,您不应该使用
find\u by.*
方法。长期以来,他们一直被认为是一种不好的做法。您尤其不应该使用
find\u by\u id
。使用
Model.find(id)
。我们使用Product.find\u by\u代码。我使用find_by_id来证明其他find_by_*方法不起作用。