У меня проблемы с использованием команды: collection для партиала внутри формы, которую я создаю в rails. В идеале мне бы хотелось использовать команду: collection, чтобы я мог легко манипулировать этим разделом в моих шаблонах .rjs (форма будет отправлять и перезагружать форму при изменении флажка, это список дел).
Этот код работает:
<% form_for "list[]", :url => {:action => "checkbox_update"} do |f| %>
<ul id="lists_not_completed">
<% for @list in @lists %>
<%= render :partial => @list, :locals => {:f =>f, :complete => FALSE } %>
<% end %>
</ul>
<% end %>
с частичным:
<% if @list.completed == complete %>
<li><%= f.check_box :completed %>
<%=h @list.name %>
<%= link_to 'Show', list %>
<%= link_to 'Edit', edit_list_path(list) %>
<%= link_to 'Destroy', list, :confirm => 'Are you sure?', :method => :delete %></li>
<% end %>
Этот код не работает, но я хотел бы использовать эту форму:
<% form_for "list[]", :url => {:action => "checkbox_update"} do |f| %>
<ul id="lists_not_completed">
<%= render :partial => 'list', :collection => @lists, :locals => {:f =>f, :complete => FALSE } %>
</ul>
<% end %>
с нерабочим частичным:
<% if list.completed == complete %>
<li><%= f.check_box :completed %>
<%=h list.name %>
<%= link_to 'Show', list %>
<%= link_to 'Edit', edit_list_path(list) %>
<%= link_to 'Destroy', list, :confirm => 'Are you sure?', :method => :delete %></li>
<% end %>
Я получаю ошибку:
имя объекта [], но параметр объекта и @object var не существуют или не отвечают на to_param: nil. Это относится к этой строке: <li><%= f.check_box :completed %>
. Я не уверен, почему это не работает и перепробовал много разных вариантов, но я не могу заставить его работать. Форма мешает мне сделать это? Код form_for прямо из книги Rails Way для перечисления нескольких объектов из одной модели в форме.
Любая помощь по этому вопросу будет принята с благодарностью.