我有一個模型,文章,它有兩個狀態,created
和finalized
。我允許用戶創建文章,但只有在模型的某些屬性存在時才能完成。防止在模型中更新屬性
狀態本身是我的article.rb
模型的屬性。鑑於在我的控制,我將有強大的參數,可以我想要再進一步,防止調用更新的對象不更新屬性狀態,但仍更新其他屬性,如下列:
article = Article.create!
article.state # => "created"
article.update!(attr1: "attr1", attr2: "attr2", state: "finalized")
article # => attr1: attr2, attr2: attr2, attr3: null, attr4: null, state: "created"
article.update!(attr3:, "attr3", attr4: "attr4", state: "finalized")
article # => attr1: "attr2", attr2: "attr2", attr3: "attr3",
# attr4: "attr4", state: "finalized"
我的想法是阻止更新對象的屬性,除非存在所有必需的屬性,但仍允許用戶創建對象而不必預先指定所有屬性。我怎樣才能做到這一點? (而且是值得的麻煩,還是一個好主意嗎?)
我會使用aasm,如果我有超過2個州管理 – tvieira
同意,只爲未來 –