如何将超过2个参数传递给partial?

MKK*_*MKK 1 ruby-on-rails ruby-on-rails-3

我想传递两个参数,如topicicon_photo.
我怎样才能做到这一点?

未定义的方法`icon_photo?'

我用下面的代码得到了这个错误.

视图

<div class="Topic">
  <% @community.topics.each do |topic| %>
    <%= render 'topics/topic', :topic => topic, :icon_photo => topic.user.profile.avatar %>
  <% end %>
</div>
Run Code Online (Sandbox Code Playgroud)

MrY*_*iji 7

您可以传递本地哈希:

<div class="Topic">
  <% @community.topics.each do |topic| %>
    <%= render 'topics/topic', locals: {topic: topic, icon_photo: topic.user.profile.avatar, etc: 'blabla' } %>
  <% end %>
</div>
Run Code Online (Sandbox Code Playgroud)

请参阅此处的一些文档:http: //www.tutorialspoint.com/ruby-on-rails/rails-render.htm

一点改进可以是mabe,你可以像这样渲染你的集合:

<div class="Topic">
  <%= render partial: 'topics/topic', collection: @community.topics %>
</div>


# in your partial topics/_topic.html.erb:
<% icon_photo = topic.user.profile.avatar %>
Run Code Online (Sandbox Code Playgroud)