如何在不将模型保存到数据库的情况下更改枚举值?
ActiveRecord::Enum的文档表明,像conversation.active!
和conversation.status = "archived"
这样的方法等效于conversation.update! status: 1
,而我正在从simple_form表单获取属性,并且在所有属性都设置好之前,我不希望保存模型,否则模型无效。
最佳答案
该方法的爆炸式版本-conversation.active!
将立即保存到数据库中。
另一种方式-conversation.status = "archived"
不会,以后将需要显式的conversation.save!
。所以,这就是您所追求的方法。
(顺便说一句,Rails控制台非常方便用于测试类似这样的东西,并且甚至在执行时还会向您显示使用该方法的bang版本执行的确切的sql)