Rails 4 - find_by_* 在 rake 任务中不起作用
Rails 4 - find_by_* does not work in a rake task
我是 运行 抽佣任务,在创建最后一个产品时遇到了 byebug。
然后我在 rake 任务 buebug 和 rails 控制台中的输出之间出现奇怪的差异。
Product.count 在控制台和 byebug 中都有效,但 Product.find_by_id 仅在控制台中有效。在 rake 任务中 returns nil.
到目前为止,我用 where 替换了 find_by_* 方法,这样验证就会通过,rake 任务就会完成它的工作。
谷歌搜索没有帮助。这很奇怪,因为我们在很少的地方使用 find_by_*。发现你在 rake 任务中的验证不可靠至少可以说有点令人担忧。
有没有人遇到过这样的问题?对如何进一步进行有任何想法吗?
All dynamic methods except for find_by_... and find_by_...! are deprecated.
所有具有 xxx_by_ 的方法现在都是 xxx_by(删除结束方法上的下划线)。所以,你可以使用:
- find_by... 和 find_by...!或
- where(...).to_a return 一个数组或 where(...).last 到 return 一个对象
请注意 where(...) return 是一个关系,而不是一个数组。
我是 运行 抽佣任务,在创建最后一个产品时遇到了 byebug。
然后我在 rake 任务 buebug 和 rails 控制台中的输出之间出现奇怪的差异。
Product.count 在控制台和 byebug 中都有效,但 Product.find_by_id 仅在控制台中有效。在 rake 任务中 returns nil.
到目前为止,我用 where 替换了 find_by_* 方法,这样验证就会通过,rake 任务就会完成它的工作。
谷歌搜索没有帮助。这很奇怪,因为我们在很少的地方使用 find_by_*。发现你在 rake 任务中的验证不可靠至少可以说有点令人担忧。
有没有人遇到过这样的问题?对如何进一步进行有任何想法吗?
All dynamic methods except for find_by_... and find_by_...! are deprecated.
所有具有 xxx_by_ 的方法现在都是 xxx_by(删除结束方法上的下划线)。所以,你可以使用:
- find_by... 和 find_by...!或
- where(...).to_a return 一个数组或 where(...).last 到 return 一个对象
请注意 where(...) return 是一个关系,而不是一个数组。