私のフォームには2つのモデルプロファイルとユーザーがあります。ユーザが作成された後、彼は彼のプロフィールの編集に移ることができる。ビューはうまくいく。しかし、「保存」をクリックすると、編集されたプロファイルが更新されます。それは更新されませんが、フラッシュ通知はそのプロファイルが更新されたことを表示します。何が間違っているのでしょうか?何が間違っているのか分かりません。以下はコードです。ROR:2つのモデルを1つのフォームから更新する
class ProfilesController < ApplicationController
def new
#@user.profile = Profile.new
@user = User.find(current_user.id)
@identity = @user.profile || @user.build_profile()
@identity.save
end
def update
@user = current_user
@identity = @user.profile
if @identity.update_attributes(params[:identity])
flash[:notice] = 'Profile was successfully updated.'
redirect_to(new_profile_path())
else
render :action => "new"
end
end
end
class UsersController < ApplicationController
def show
@user = current_user
@user = User.find(params[:id])
@identity = @user.profile || @user.build_profile()
@identity.save
end
......
end
ご協力いただきありがとうございます。
あなたのdevelopment.logをチェックして、どのパラメータが渡されているのかを確認してください。おそらくparams [:identity]で何も送信していないかもしれません。 – Cory
ただ頭を上げてください。 '@identity = @user。プロフィール|| @ user.build_profile() 'を' @user.profile || = Profile.new'に追加します。 – ryeguy
@Cory ..ログを確認したところ、それは成功しているようですが、項目はまだ更新されていません。 – user487429