我有兩個模型,User和Account。每個用戶可能有一個帳戶。has_one更新問題
爲用戶創建一個帳戶工作正常。我的問題是,當我嘗試更新帳戶時,以前的帳戶user_id被取消,並且使用user_id創建新的帳戶行。我不希望發生這種情況。我想更新現有的行,並將其更改爲帳戶。我該怎麼做呢?
謝謝。
我有兩個模型,User和Account。每個用戶可能有一個帳戶。has_one更新問題
爲用戶創建一個帳戶工作正常。我的問題是,當我嘗試更新帳戶時,以前的帳戶user_id被取消,並且使用user_id創建新的帳戶行。我不希望發生這種情況。我想更新現有的行,並將其更改爲帳戶。我該怎麼做呢?
謝謝。
有了這個代碼
@account = @user.account.build(params[:account])
if @account.save
#...
else
#...
end
你正在建設一個新的account
。你需要的是更新
if @account.update_attributes(params[:account])
#...
else
#...
end
既然你沒有提供任何代碼,您說這是你如何創建一個用戶
user = User.create(:name => "bob")
然後你就可以將用戶與帳戶通過指定USER_ID
account = Account.create(:user_id =>user.id, :status => "not activated")
關聯現在讓我們說我們想改變賬戶的狀態。我們可以調用更新方法在軌道http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002270這樣的:
Account.update(account.id, :status => "activated")
我可以用更多信息更有幫助。
向我們展示一些代碼。 – ryeguy 2010-05-10 16:24:36
您能否發佈您用於'update'操作的代碼? – 2010-05-10 16:25:41
@account = @ user.account.build(params [:account]); 如果@ account.save ... 其他 ... 結束 – 2010-05-10 16:40:39