###前提・実現したいこと
ただ今Webアプリケーションを作っておりまして
ユーザーがログインして利用するタイプのものなのですが、
よくある「会員情報修正」機能を実装しました。
その際にひとまず、情報修正画面にて変更点を入力した後
更新ボタンを押した瞬間に情報が上書きされるようになっております。
そこで、「この内容でよろしいですか?ID:○○、ユーザーネーム:△△」
などのような確認画面を挟みたいと思っております。
https://teratail.com/questions/53973
同じような質問はこの方のみで、他に同じような質問を見つけられず…
困り果てております。
###発生している問題・エラーメッセージ
特にエラーは吐かないのですが
http://qiita.com/inodev/items/b5600de8580f473cfa94
を参考にさせていただきまして
入力確認画面を実装したところ
情報修正画面で情報を入力→確認画面だと修正前のデータが表示される
→試しに「更新」ボタンを押してみる
→UPDATEも行われていない?みたいです。
controllerでの@userの定義が分からず
確認画面に行った際に再度テーブルから変更前のデータを取得してきてしまうのかな?と
何となくアタリはつけておりますが、どのように変更すればいいのか分からず…
###該当のソースコード(一部抜粋)
app/controllers/users_controller.rb
~~略~~ def edit @user = User.find(params[:id]) end def update @user = User.find(params[:id]) if params[:back] render :edit elsif @user.update_attributes(user_params) flash[:success] = "Profile updated" redirect_to @user else render 'edit' end end def confirm @user = User.find(params[:id]) # <=POSTされたパラメータを取得 render :edit if @user.invalid? # <=バリデーションチェックNGなら戻す end ~~略~~
###試したこと
def update内で@userの色々な定義を試してみましたがエラーだらけでした。
@user = User.new(user_params)
にすると何とか動くのですが
新規会員登録画面で定義しているバリデーション?を流用してしまうらしく
(そういう設定なので当たり前なんですけど)
メールアドレスの変更はせずパスワードだけ変えた場合など
「メールアドレスが被っています」というエラーが出て
変更されず戻されてしまいます。
###補足情報(言語/FW/ツール等のバージョンなど)
何か足りない情報、分かり辛い表現など御座いましたら遠慮なくお申し付けください。
随時追加/変更させていただきます。
貴重なお時間を頂き、ありがとうございます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/16 09:02
2017/01/16 09:08
2017/01/16 09:31
2017/01/16 09:32
2017/01/16 09:52
2017/01/16 09:57