越來越可變我見過的其他職位,但似乎無法找出爲什麼這不是爲我工作局部
在我的控制器我在視圖中設置
@referrer=referrer.name
我有
<%= render 'js', :referrer => @referrer >
然後在我的部分,我把
var type =' <%= referrer >';
我得到一個響應'未定義的局部變量或方法'referrer',它指向_js文件。
從我所看到的,這正是它應該如何寫,我做錯了什麼?
越來越可變我見過的其他職位,但似乎無法找出爲什麼這不是爲我工作局部
在我的控制器我在視圖中設置
@referrer=referrer.name
我有
<%= render 'js', :referrer => @referrer >
然後在我的部分,我把
var type =' <%= referrer >';
我得到一個響應'未定義的局部變量或方法'referrer',它指向_js文件。
從我所看到的,這正是它應該如何寫,我做錯了什麼?
<%= render :partial => "account", :locals => { :referrer => @referrer } %>
您在部分中使用的變量需要通過:locals散列傳遞。
參考:http://api.rubyonrails.org/classes/ActionView/Partials.html
編輯
以下作品完美的我:
控制器:
def index
@referrer = "test"
end
index.html.erb
<%= render :partial => "account", :locals => { :referrer => @referrer } %>
_account.html.erb
<%=referrer%>
原來的原因是在部分,我不得不打電話
var type='<%= @referrer %>'
不知道爲什麼所有的其他文件,我看到了它,而不@符號
這有效,但推薦使用@Gazier推薦的'locals'哈希。 – raidfive 2011-05-27 23:59:06
我很確定:partial和:locals已經被Rails3棄用了。 – pedalpete 2011-05-27 21:52:49
據我所知並不如此。查看這個頁面的partials部分:http://guides.rubyonrails.org/layouts_and_rendering.html「在以前的Rails版本中,默認的局部變量會尋找一個實例變量,其名稱與父類中的部分名稱相同。行爲在2.3中被棄用,並在Rails 3.0中被刪除。「 – Gazler 2011-05-27 21:54:01
看起來你是對的,看這個文檔也http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials,但顯然這是不需要的。任何想法爲什麼我必須在我看來使用@referrer?我以爲我會使用'referrer',如果你能解釋一個,我會接受你的答案,因爲這是我的難題。 – pedalpete 2011-05-27 23:24:20