#やりたいこと
権限:管理者とノーマル
1管理者はノーマルユーザーの画面に入り、とあるレコードの新規登録ができる
2コントローラーで変数@user_name
にノーマルユーザーの名前を詰める
3管理者ログイン-> ノーマルユーザー1のとあるレコード新規登録画面で、ノーマルユーザー1の名前を表示させる
4わざと空で登録し、バリデーションエラーを起こす。
5コントローラーでは登録失敗時にrender :new
としているので、当然登録画面に戻る
6リダイレクトではないので、コントローラーは通らず、変数@user_nameに値が入らない。
7結果、ノーマルユーザーの名前が表示されなくなってしまう。
#####コントローラーでrenderしても、@user_nameをviewで使えるようにしたい!
#こんな感じ・・・?
vhiddenでパラメータに渡して・・・
erb
1<%= f.hidden_field :member_name, value: @member_name, name: 'member_name' %>
renderのlocalsっぽく書いてみる
ruby
1def create 2 3・ 4・ 5・ 6if ~ 7~ 8else 9render :new, member_name: params[:member_name]
が、最初だけしか名前が表示されず、バリデーションエラー後は名前が表示されない。
jsでも試してみたが、同じこと。。
最初に画面を開いたときにしかmember_nameの中に値がない。
coffee
1 $(document).ready -> 2 $('#member_name').text member_name
ちなみに@user_nameの取得はこんな感じです。
def get_member_name @member_name = User.find(@normal_user_id).full_name <- full_nameメソッドを別途定義 end
これをbefore_actionで使っています。
調べてみるとhtml.erbの中で書くrenderしか見つからず、
controllerのrenderの場合にやりたいことを実現するにはどうすればいいのかが分かりません。
教えて頂けると助かります。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/08 16:15