@Pianista

Не рендерится форма голосования. Что исправить?

Суть приложения:
- есть списки
- каждый список имеет много пунктов
- за каждый пункт можно проголосовать

Страница списка:
lists/show.html.erb
<%= render 'list_description' %>
<ol>
<%= render @list.items.order(rating: :desc) %>
</ol>


Шаблон пункта:
items/_item.html.erb
<li>
<%= item.title %>
<%= render "votes/like" %> - Этот рендер формы голосования вызывает ошибку
</li>


Форма голосования:
votes/_like.html.erb
<%= form_for :vote, url: list_item_votes_path(:item_id => item, :list_id => @list.id) do |f| %>
<%= f.hidden_field :vot, value:'up' %>
<%= f.submit " ",class: "vote-button bth-like"  %>
<% end %>

<%= form_for :vote, url: list_item_votes_path(:item_id => item, :list_id => @list.id) do |f| %>
<%= f.hidden_field :vot, value:'down' %>
<%= f.submit " ",class: "vote-button bth-dislike"  %>
 <% end %>


Если я вставляю эту форму не через рендер, а непосредственно в шаблон пункта, то все работает.
Если через рендер, то выдает следующую ошибку:
undefined local variable or method `item'
Подскажите, что нужно исправить чтобы работал рендер?
  • Вопрос задан
  • 146 просмотров
Решения вопроса 1
Попробуйте так.

<%= render "votes/like", locals: {item: item} %>

Локальные переменные обычно между шаблонами не переносятся.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы