jay*_*jay 31 ruby-on-rails ruby-on-rails-3
我想知道,当你创建一个对象时,你经常可以在一行中设置多个属性,例如:
@object = Model.new(:attr1=>"asdf", :attr2 => 13, :attr3 => "asdfasdfasfd")
Run Code Online (Sandbox Code Playgroud)
如果我想先使用find_or_create_by然后稍后更改其他属性怎么办?通常,我必须使用多行,例如:@object = Model.find_or_create_by_attr1_and_attr2("asdf",13)@ object.attr3 ="asdfasdf"@ object.attr4 ="asdf"
有没有办法使用类似于Model.new方法接受键值对的哈希来设置属性?我对此感兴趣,因为我可以在一行上设置多个属性,如:
@object = Model.find_or_create_by_attr1_and_attr2("asdf", 13)
@object.some_method(:attr3 => "asdfasdf", :attr4 => "asdfasdf")
Run Code Online (Sandbox Code Playgroud)
如果有人有任何想法,那将是伟大的!
rjz*_*rjz 54
你想使用assign_attributes
或update_attributes
:
@object.assign_attributes(:attr3 => "asdfasdf", :attr4 => "asdfasdf")
Run Code Online (Sandbox Code Playgroud)
如果您选择update_attributes
相反,该对象将立即保存(当然,等待任何验证)
归档时间: |
|
查看次数: |
20821 次 |
最近记录: |