越来越可变我见过的其他职位,但似乎无法找出为什么这不是为我工作局部
在我的控制器我在视图中设置
@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