Ruby on rails 获取局部变量

Ruby on rails 获取局部变量,ruby-on-rails,variables,partials,Ruby On Rails,Variables,Partials,我看过其他帖子,但似乎不明白为什么这对我不起作用 在我的控制器中,我设置了 @referrer=referrer.name @referer=referer.name 在我看来,我有 <%= render 'js', :referrer => @referrer > @推荐人> 然后在我的部分 var type =' <%= referrer >'; 变量类型=“”; 我得到一个响应“未定义的局部变量”或方法“referer”,它指向_js文件 从我所看到的,这正是它应该

我看过其他帖子,但似乎不明白为什么这对我不起作用

在我的控制器中,我设置了

@referrer=referrer.name @referer=referer.name 在我看来,我有

<%= render 'js', :referrer => @referrer > @推荐人> 然后在我的部分

var type =' <%= referrer >'; 变量类型=“”; 我得到一个响应“未定义的局部变量”或方法“referer”,它指向_js文件

从我所看到的,这正是它应该写的,我做错了什么

<%= render :partial => "account", :locals => { :referrer => @referrer } %>
index.html.erb

<%= render :partial => "account", :locals => { :referrer => @referrer } %>
“帐户”,:locals=>{:referer=>@referer}%>
_account.html.erb

<%=referrer%>

原来原因是在部分中,我不得不打电话

var type='<%= @referrer %>' 变量类型=“”
不确定为什么我看到的所有其他文档都没有@symbol

我很确定:partial和:locals已经被Rails3弃用了。据我所知不是这样。请参阅本页的partials部分:“在Rails的早期版本中,默认的局部变量将查找与父级中的partials同名的实例变量。此行为在2.3中被弃用,在Rails 3.0中已被删除。”您似乎是对的,同时也查看了此文档,但显然不需要它。你知道我为什么要用@referer吗?我想我会使用“推荐人”,如果你能解释一下,我会接受你的答案,因为这正是我困惑的地方。我不确定,我刚刚做了一个测试应用程序,它工作得很好。如果您想查看,我可以将其粘贴到github上,但代码与我的答案相同。这是可行的,但建议使用@Gazier建议的
locals
hash。 var type='<%= @referrer %>'