让以下代码抛出错误。我以前总是只是陪审团操纵但想要学习正确的方法。传递局部变量的正确方法是什么?假设您还有一个要在部分中使用的实例变量?
@users is an array of user emails
<% @users.each do |email| %>
<%= render :partial => 'user/foobar' %>
<% end %>
user/foobar
<div id="user_<%= email %>>
<div><%= email %></div>
</div>
编辑:在添加电子邮件地址后,也希望在js文件中使用partial。我会在创建后将实例设置为@user或其他吗?
答案 0 :(得分:2)
您无需使用each
。您可以使用:collection
选项:
<%= render :partial => "user/foobar", :collection => @users %>
在user/_foobar.html.erb
部分(下面,自动创建的局部变量foobar
将包含@users
集合中项目的当前实例):
<div id="user_<%= foobar %>>
<div><%= user %></div>
</div>
局部变量以partial的名称命名。请参阅guide here。
答案 1 :(得分:0)
试试这个:
render :partial => 'user/foobar', :locals => {:email => email }
将您的本地变量“email”传递为符号:email