rta*_*oni 3 ruby activerecord ruby-on-rails instance-variables models
我有以下代码:
def incoming_acceptation(incoming_code)
if invite_code == incoming_code
accepted = true
self.save
true
else
false
end
end
Run Code Online (Sandbox Code Playgroud)
但它没有改变并保存接受为真,它仍然处于以前的状态,是假的.
@i.incoming_acceptation(incoming_code) => true
@i.accepted => false
Run Code Online (Sandbox Code Playgroud)
我建议:
def incoming_acceptation(incoming_code)
update_attribute(:accepted, true) if invite_code == incoming_code
end
Run Code Online (Sandbox Code Playgroud)
update_attribute将更改并保存该属性.还有update_attributes(注意s)接受Hash一次更改多个属性:
@obj.update_attributes(:accepted => true, :accepted_at => Time.now)
Run Code Online (Sandbox Code Playgroud)
注意:当更改和保存成功时update_attribute,update_attributes两者都会返回true,就像在您的示例中一样.
| 归档时间: |
|
| 查看次数: |
3608 次 |
| 最近记录: |