【发布时间】:2018-08-14 02:58:30
【问题描述】:
只有在 Sidekiq 作业中运行时,我们才会收到包含枚举类型的错误报告。我不确定是每次运行还是随机运行,但我们通常会收到如下错误:
NoMethodError: undefined method `to_sym' for 1:Integer 你的意思是? 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?。您应该使用枚举提供的魔法方法,而不是直接使用该字段。 -
感谢@meagar! - 我们将在我们的代码中查看这些位置并为将来的搜索报告。
-
@meagar 你说得对,这些确实有效。但它似乎缺少支持枚举类型的实现细节,不是吗?
-
没关系,这会为一个真正不需要的特定情况创建对 Rails 的依赖。
标签: ruby-on-rails ruby-on-rails-5 sidekiq