ユーザーとアカウントの2つのモデルがあります。各ユーザーは1つのアカウントを持つことができます。
ユーザーのアカウントの作成は正常に機能します。私の問題は、アカウントを更新しようとすると、以前のアカウントuser_idが無効になり、user_idを使用して新しいアカウント行が作成されることです。私はこれが起こらないようにしたい。アカウントの変更で既存の行を更新したいと思います。どうすればよいですか?
ありがとう。
ユーザーとアカウントの2つのモデルがあります。各ユーザーは1つのアカウントを持つことができます。
ユーザーのアカウントの作成は正常に機能します。私の問題は、アカウントを更新しようとすると、以前のアカウント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")
より多くの情報があれば、より役立つことができます。