4

ユーザーとアカウントの2つのモデルがあります。各ユーザーは1つのアカウントを持つことができます。

ユーザーのアカウントの作成は正常に機能します。私の問題は、アカウントを更新しようとすると、以前のアカウントuser_idが無効になり、user_idを使用して新しいアカウント行が作成されることです。私はこれが起こらないようにしたい。アカウントの変更で既存の行を更新したいと思います。どうすればよいですか?

ありがとう。

4

2 に答える 2

4

このコードで

@account = @user.account.build(params[:account])
if @account.save 
   #... 
else 
   #...
end 

新しい を構築していますaccount。必要なのはアップデート

if @account.update_attributes(params[:account])
   #...
else
   #...
end
于 2010-05-10T16:53:27.493 に答える
1

コードを提供しなかったので、これがユーザーの作成方法であるとしましょう

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")

より多くの情報があれば、より役立つことができます。

于 2010-05-10T16:46:14.287 に答える