为什么我的部分不能正确接收参数?

时间:2012-12-23 07:24:14

标签: ruby-on-rails ruby-on-rails-3 view

当渲染一个名为'member'的部分时,它会显示错误

  

#<#:0x000000095ec8c0>

的未定义局部变量或方法`user'

为什么?

我的代码是

查看

<% @users.each do |user| %>  
    <%= render 'member', :locals => {:user => user} %>      
<% end %>

部分

<div class="chapter">
  <p class="title">
    <%= user.user_profile.nickname %>(<%= user.username %>)
  </p>

2 个答案:

答案 0 :(得分:3)

您应该使用:

<%= render :partial => 'member', :locals => { :user => user } %>

或者只是:

<%= render 'member', :user => user %>

答案 1 :(得分:3)

我的建议是,只要有可能,你就会遵守惯例;如果你这样做,一切都会顺利进行。

如果您有_user.html.erb部分,则可以使用此rails约定

<% @users.each do |user| %>
 <%= render user %>
<% end %>

但你甚至可以缩短这个

<%= render @users %>

好哇!

我强烈建议您查看Layouts and Rendering Guide