【Rails】layouts/application.rhtmlで <% #{hoge.name} %> 的なことがしたいのですが、

undefined local variable or method `hoge'
とうエラーが出ます。
layoutsで別の「hoge」というcontrollerの変数を使うための方法を教えてください

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/11/30 22:35:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:core No.1

回答回数3ベストアンサー獲得回数1

ポイント60pt

私はRuby/Rails初級者レベルなので見当違いの回答でしたらすみません。


Controllerで作った変数をViewから参照したい場合は「@を使ったインスタンス変数」を使います。

例1

●Controller

@hoge = "aaa"

●View

<%= @hoge %>

例2

●Controller

@hoge = Hoge.find_by_name("ささきこじろう")

●View

<%= @hoge.name %>

簡単に書くと、

hoge・・・ローカル変数なので持ち運べない

@hoge・・・インスタンス変数で持ち運び自由


Viewで使いたいデータがある場合はController側でインスタンス変数に格納してください。他にもView側へ変数を渡す方法はあるのですがとりあえずはこんな感じでいかがでしょうか?


一応URLも張っておきます。参考になれば幸いです。

アクションメソッド内のインスタンス変数を参照する - RHTMLファイルへのRubyコードの記述 - Ruby on Rails入門

id:pandeiro_jp

いけました!ありがとうございます!

2008/11/30 22:34:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません