Ich habe ein Rails-Formular nach den Anweisungen in this Railscast eingerichtet.Wie lege ich eine eindeutige ID für Checkboxen in einem Multi-Record-Rails-Formular fest?
Hier ist der Code für das Formular:
<% form_tag complete_todos_path, :method => :put do %>
<ul>
<div id="incomplete_todos">
<% @incomplete_todos.each do |todo| %>
<%= render :partial => todo %>
<% end %>
</div>
</ul>
<%= submit_tag "Mark as completed" %>
<% end %>
Und hier ist der Code für die To-do-Teil:
<div class="todo">
<li>
<%= check_box_tag "todo_ids[]", todo.id %>
<%=h todo.name %>
<%= link_to 'edit', edit_todo_path(todo) %>
<%= link_to 'delete', todo, :confirm => 'Are you sure?', :method => :delete %>
</li>
</div>
Es ist großartig zu arbeiten, aber ich bin auf der Suche Umsetzung AJAX zu starten und ich brauche Jedes Kontrollkästchen hat eine eindeutige ID. Gerade jetzt, erzeugt die Eingangs-Tags wie folgt aussehen:
<input id="todo_ids_" name="todo_ids[]" type="checkbox" value="7" />
Jedes Kontrollkästchen hat die gleiche ID („todo_ids_“), das ist ein Problem. Ich vermute, dass die Lösung peinlich einfach ist, aber ich sehe es nicht. Irgendwelche Tipps?
generiert die folgende: Die ids alle einzigartig sind, das ist toll, aber es sendet die Parameter in einer seltsamen Art und Weise: todo_ids "=> {" 5 "=>" 5 "} ich am Ende mit: Todo.update_all ([" completed_at = „, Time.now?]: id => params [: todo_ids] .keys) als Workaround und es funktioniert gut (obwohl es wie eine Art chaotische Lösung scheint). Danke! –
Sie sollten params [: todo_ids] .keys.collect (&: to_i) verwenden Ich bin froh, dass es funktioniert hat. –