我正在执行rake任务,并在创建最后一个产品时停止使用byebug。
然后我在rake task buebug和rails console的输出之间出现了奇怪的差异。
Product.count 可在控制台和byebug中使用,但 Product.find_by_id 仅适用于控制台。在rake任务中,它返回 nil 。
到目前为止,我将find_by_ *方法替换为where,以便验证将通过,rake任务将完成其工作。
谷歌搜索没有帮助。这很奇怪,因为我们在很少的地方使用find_by_ *。发现你在rake任务中的验证不可靠有点令人担忧,至少可以说。以前有人遇到过这样的问题吗?任何想法如何进一步发展?
答案 0 :(得分:2)
除了find_by _...和find_by _...之外的所有动态方法!不推荐使用。
所有具有xxx_by_的方法现在都是xxx_by(删除end-method上的下划线)。所以,你可以使用:
注意where(...)返回一个关系,而不是一个数组。