如何在多记录Rails表单中为复选框设置唯一ID?

Gra*_*lip 2 forms ajax checkbox ruby-on-rails multiple-records

我已经成立了一个Rails的形式大致如下的说明 Railscast.

这是表单的代码:

<% 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 %>
Run Code Online (Sandbox Code Playgroud)

以下是todo partial的代码:

<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>
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我希望开始实现AJAX,我需要每个复选框都有一个唯一的ID.现在,生成的输入标签看起来像这样:

<input id="todo_ids_" name="todo_ids[]" type="checkbox" value="7" />
Run Code Online (Sandbox Code Playgroud)

每个复选框都有相同的ID("todo_ids_"),这是一个问题.我怀疑解决方案很简单,但我没有看到它.有小费吗?

BJ *_*ark 7

<%= check_box_tag "todo_ids[]", todo.id, false, :id => "todo_id_#{todo.id}" -%> 或者你想要的任何东西.

我认为这是一个check_box_tag的错误,这个错误是由于手动赋予它名称为todo_ids []和调用sanitize_to_id(name)的方法代码这种看似虚伪的特性造成的.我昨天碰到了这个,我正在考虑补丁.