Ruby on rails 复选框标记-一对多关系

Ruby on rails 复选框标记-一对多关系,ruby-on-rails,Ruby On Rails,我有两个模型-批量和提交 批处理有多个:提交 提交属于:批处理 My submissions表有一个字段/列,用于存储每次提交的批次id 在我的新批处理表单中,用户可以通过复选框选择提交并保存表单。这会将新创建的批id与所选提交关联 我目前使用以下代码允许用户选择提交并保存表单,这将创建一个新批,并将新批id与所选提交关联 选择提交文件的代码: <% @subs.each do |submission| %> <td><%= check_box_t

我有两个模型-批量和提交

批处理有多个:提交 提交属于:批处理

My submissions表有一个字段/列,用于存储每次提交的批次id

在我的新批处理表单中,用户可以通过复选框选择提交并保存表单。这会将新创建的批id与所选提交关联

我目前使用以下代码允许用户选择提交并保存表单,这将创建一个新批,并将新批id与所选提交关联

选择提交文件的代码:

 <% @subs.each do |submission| %>
        <td><%= check_box_tag "batch[submission_ids][]", submission.SUB_ID, @batch.submissions.include?(submission) %></td>
        <td><%= submission.SUB_ID %></td>
        <td><%= submission.SUB_NAME %></td>
    </tr>
  <%end%>

它似乎工作得很好,除了编辑时

如果我创建一个新批并将2个提交与之关联,然后编辑该特定批并取消选择所有提交并保存该批,则不会保存更改。但是,如果我仅取消选择一个提交或选择另一个提交,则更改将被保存

只有在编辑包含选定提交的批时,并且在取消选择所有预选提交后尝试保存该批时,我才会出现此错误

我真的对此感到困惑,并认为可能错误与复选框标记有关

如果有人能就此向我提供一些建议,我将不胜感激


非常感谢您的帮助

我曾经遇到过同样的问题。问题是,未选中的框不会被发送。发件人:

“明白了 HTML规范表示未选中的复选框不成功,因此web浏览器不会发送它们。[…]”

虽然有人说checkbox标签应该是ok(),但我必须传递隐藏字段id,以防所有的checkbox都被取消选中

这是一般的线索,但我希望能有所帮助。您应该检查日志,如何以及是否传递ID(或者在没有ID时以不同方式处理)


祝你好运

非常感谢santuxus…我们会看看这个,然后按照你的建议行事..干杯:)