[英]Rails enum returning integer value in Sidekiq Job
仅当在Sidekiq作业中运行时,我们才会收到带有枚举类型的错误报告。 我不确定是每次运行还是随机运行,但是我们通常会遇到如下错误:
NoMethodError:1:整数的未定义方法“ to_sym”是什么意思? to_s
enum status: [:active, :inactive, :deleted]
def set_status
return if self.status.to_sym == :deleted
...
end
添加为答案,因此此问题可以标记为已结束:
return if self.status.to_sym == :deleted
则应return if deleted?
。 您应该使用枚举提供的魔术方法,而不是直接与该领域合作。
Sidekiq是Ruby的处理器,因此引入它会在Rails上创建不必要的依赖关系。
当然,这是我的意见,但是经过仔细考虑后,Rails应该是与它们各自的符号形式等效的一个处理数字。 例如,您可以将status
设置为0,:active或'active',并进行适当保存,但是get期间返回的值应保持一致或提供确保一致性的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.