如何在不将模型保存到数据库的情况下更改枚举值?

ActiveRecord::Enum的文档表明,像conversation.active!conversation.status = "archived"这样的方法等效于conversation.update! status: 1,而我正在从simple_form表单获取属性,并且在所有属性都设置好之前,我不希望保存模型,否则模型无效。

最佳答案

该方法的爆炸式版本-conversation.active!将立即保存到数据库中。

另一种方式-conversation.status = "archived"不会,以后将需要显式的conversation.save!。所以,这就是您所追求的方法。

(顺便说一句,Rails控制台非常方便用于测试类似这样的东西,并且甚至在执行时还会向您显示使用该方法的bang版本执行的确切的sql)

10-08 06:47