Я новичок в рельсах. У меня есть этот блок, на мой взгляд afrikaans.html.erbОказание частичного внутри блока
<% @afrikaans.each do |course| %>
<div class="course">
<h3 class="course-name"><%= link_to course.name, course.url %></h3>
<% if I18n.locale == I18n.default_locale %>
<p class="course-description_en"><%= course.description_en %></p>
<% else %>
<p class="course-description_se"><%= course.description_se %></p>
<% end %>
<% if course.youtube_url.blank? == false %>
<p><%= raw ApplicationHelper.youtube_embed(course.youtube_url) %></p>
<% end %>
<% if course.language_id == 1 %>
<p> <%= image_tag("eng.png", :alt => "England", :class =>"round") %></p>
<% else %>
<p> <%= image_tag("swe.png", :alt => "Sweden", :class =>"round") %></p>
<% end %>
<% if ApplicationHelper.active_link?(course.url) == false %>
<td><%= I18n.t('home.broken_link') %></td>
<% end %>
<p><%= course.nbr_of_votes %> <%= I18n.t('home.votes') %></p>
</tr>
<% end %>
У меня также есть еще один файл swahili.html.erb с такой же структурой. Я хотел бы реализовать что-то вроде этого
afrikaans.html.erb
<% @afrikaans.each do |course| %>
<%= render 'shared/partial' %>
<% end %>
Так что я тоже могу иметь
swahili.html.erb
<% @swahili.each do |course| %>
<%= render 'shared/partial' %>
<% end %>
Парциальное будет содержать часть блока. Я пробовал это, но он не работает. Мой вопрос в том, что это возможно даже в рельсах, и если да, то в чем проблема. Какие параметры у меня есть, если это невозможно, чтобы я мог избежать повторения, поскольку два файла имеют одну и ту же структуру?
Обновление. Этот был разработан для меня. Я только необходимо добавить :course => course
на блоке, так что мои взгляды становится чем-то вроде
<% @afrikaans.each do |course| %>
<%= render 'shared/course_body', :course => course %>
<% end %>
Конечно, я не назвал мое частичное «частичное». Это просто вопрос. Благодаря одному ответу Александра Александровича Панасюка.
его возможно. Какая ошибка вы получаете с кодом? – ben
Первое, что нужно проверить, это частичный файл: '_partial.html.erb', то есть имя файла. – vee
Это очень хорошо. Что значит «не работает»? Вы получаете ошибку? –