Рефакторинг с использованием партиалов и коллекций - PullRequest
0 голосов
/ 01 января 2012

Может ли следующий код быть реорганизован и упрощен с использованием параметра коллекции partials? Я не могу понять, как это можно сделать из-за локальной переменной «path», передаваемой внутрь.

<% @admins.each do |admin| %>
  <%= render :partial => 'person', :locals => { :person => admin, :path => edit_admin_path(admin) } %>
<% end if @admins %>

<% @users.each do |user| %>
  <%= render :partial => 'person', :locals => { :person => user, :path => edit_user_path(user) } %>
<% end if @users %>

1 Ответ

4 голосов
/ 01 января 2012

Используйте рендеринг коллекций :

<%= render :partial => "person", :collection => @users + @admins %>

# in person.html.erb
path = person.admin? edit_admin_path(person) : edit_user_path(person)
...