質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

759閲覧

controllerでrenderした時に、変数を渡したい

tenten11055

総合スコア67

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2019/11/08 10:06

編集2019/11/08 10:11

#やりたいこと
権限:管理者とノーマル
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 3456if ~ 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の場合にやりたいことを実現するにはどうすればいいのかが分かりません。

教えて頂けると助かります。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

controllerのrenderの場合にやりたいことを実現するにはどうすればいいのかが分かりません。

renderの直前にget_member_nameを呼ぶ、で問題ないのではないでしょうか。

投稿2019/11/08 11:37

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tenten11055

2019/11/08 16:15

ご指示の通り、renderの直前に呼んだらできました! ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問