У меня есть приложение Rails 3 с видом, который меня раздражает. Представление состоит из четырех вкладок. На каждой вкладке отображается отфильтрованный список таких записей:

Первая вкладка

<% @faults.each do |fault| %>
    <%= fault.name %>
<% end %>

Вторая вкладка

<% @faults_pending.each do |fault| %>
    <%= fault.name %>
<% end %>

Третья вкладка

<% @faults_closed.each do |fault| %>
    <%= fault.name %>
<% end %>

Очевидно, я упустил намного больше кода. Чтобы значительно упорядочить вид, я подумал о создании партиала для каждой вкладки, однако каждая из этих частей будет идентична, за исключением строки <% @faults.each do |fault| %>.

Есть ли способ иметь один частичный и каким-то образом при рендеринге частичного набора области (или метода, я никогда не могу вспомнить, как он называется).

0
dannymcc 11 Фев 2013 в 01:13

1 ответ

Лучший ответ

Я думаю, вы ищете вариант render's: locals.

Вкладка первая

<%= render :partial => "faults", :locals => { :faults => @faults } %>

Вкладка два

<%= render :partial => "faults", :locals => { :faults => @faults_pending } %>

Вкладка три

<%= render :partial => "faults", :locals => { :faults => @faults_closed } %>

Частичное

<% faults.each do |fault| %>
  <%= fault.name %>
<% end %>
1
jlundqvist 11 Фев 2013 в 01:42