仅当在Sidekiq作业中运行时,我们才会收到带有枚举类型的错误报告。我不确定是每次运行还是随机运行,但是我们通常会遇到如下错误:
NoMethodError:1:Integer的未定义方法`to_sym'是什么意思? to_s
enum status: [:active, :inactive, :deleted]
def set_status
return if self.status.to_sym == :deleted
...
end
答案 0 :(得分:0)
添加为答案,因此该问题可以标记为已结束:
return if self.status.to_sym == :deleted
应该是return if deleted?
。您应该使用枚举提供的魔术方法,而不是直接与该字段一起使用。
Sidekiq是Ruby的处理器,因此引入它会在Rails上建立不必要的依赖关系。
当然,这是我的看法,但是经过仔细考虑之后,Rails应该是与它们各自的符号形式等效的一个处理数字。例如,您可以将status
设置为0,:active或'active',并进行适当保存,但是get期间返回的值应保持一致或提供确保一致性的方法。