12

値/変数をパーシャルに渡す方法は次のとおりです。

<%= render "partials/banner", :locals => {:text_1 => t(:"main.home.banner_text_1"),
                                          :text_2 => t(:"main.home.banner_text_2") } %>

次に部分的に:

 <%= text_1 %> <%= text_2 %>

しかし、「未定義のローカル変数またはメソッドtext_1」を取得しています

アプリのすべてのビューとレイアウトからアクセスできるようにするには、変数をどこに設定すればよいですか?

ありがとう!

4

2 に答える 2

28

すべてのビューで表示する必要があるものがある場合は、application_helper メソッドを作成することもできます。例:banner('Text', 'Content')

これを試して:

メインページ:

<%= render :partial => 'layouts/test',
           :locals => {:text_1 => t(:'text_1'), :text_2 => t(:'text_2')}
%>

部分的:

<%= text_1 %> <%= text_2 %>
于 2010-07-11T11:57:14.417 に答える
12

Rails 3 では、部分変数を渡す方法が次のように変更されたと思います。

<%= render :partial => 'layouts/test',
       :text_1 => t(:'text_1'), :text_2 => t(:'text_2') %>

Rails はそれを解析し、:text_1 は既知のキー (:collection や :as など) ではないため、それをパーシャル自体に渡します。

text_1またはtext_2経由でアクセスできます

于 2011-04-28T16:43:15.583 に答える