2013-12-21 40 views
0

我只是好奇,如果我們有一些更好的替代方法來執行任何ClassInstance以下行動,如User改變屬性並不更新它的更好的替代方案?

user = User.first 
user.first_name 
=> 'Sahil' 
user.last_name 
=> 'Grover' 
user.update_attributes(:name =>'Sahil',:last_name => 'Gr.') 

這將更新數據庫中的名稱。是否有某種方法可以執行

user.first_name = 'Sahil' 
user.last_name = 'Gr. ' 

但是不能將它保存到數據庫中。雖然我沒有看到任何實際的實施。只是想知道是否存在任何這樣的方法?

+1

使用的方法有什麼不好'user.name =「薩赫勒Gr.''? – Baldrick

+0

不知道你想說什麼 –

+0

@Baldrick檢查更新的問題?如果我必須爲2 3個列/屬性執行此操作,該怎麼辦? –

回答

0

您可以使用該方法assign_attributes

user.assign_attribute(:name =>'Sahil',:last_name => 'Gr.') 

這實際上是update_attributes

+0

assign_attribute不起作用,它總是update_attributes。 assign_attribute拋出NoMethodError:未定義的方法'assign_attribute'爲#<用戶:0x00000006159040> –