【发布时间】:2017-10-28 16:18:44
【问题描述】:
我在模型中使用枚举,我想覆盖bang方法,例如:
class Foo < Application Record
enum status: [:ok, :error]
def ok!
self.error_message = nil
super
end
end
对此进行测试,它工作正常。有没有潜在的陷阱?
或者,完全跳过 super 是否更好/更清洁:
def ok!
self.update_attributes(status: :ok, error_message: nil)
end
谢谢!
【问题讨论】:
-
更新:我意识到如果我想将参数传递给新方法,调用
super会导致一些问题,所以我想我决定明确地调用save或save!根据需要等。 -
您可以使用
super()而不是super,以免将任何参数传递给原始ok!方法。
标签: ruby-on-rails enums