【发布时间】:2016-03-14 14:18:27
【问题描述】:
我有一个模型,文章,它有两个状态,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"
我的想法是防止对象的属性被更新,除非所有必需的属性都存在,但仍然允许用户创建对象而无需预先指定所有属性。我怎样才能做到这一点? (这值得麻烦还是个好主意?)
【问题讨论】:
标签: ruby-on-rails ruby