人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【Rails】layouts/application.rhtmlで <% #{hoge.name} %> 的なことがしたいのですが、
undefined local variable or method `hoge'
とうエラーが出ます。
layoutsで別の「hoge」というcontrollerの変数を使うための方法を教えてください

●質問者: pandeiro_jp
●カテゴリ:ウェブ制作
✍キーワード:application hoge Rails エラー 変数
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● core
●60ポイント

私は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入門

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ