2011-06-03 64 views
2

我有2个模型 - 批次和submision。check_box_tag - 一对多关系

批次的has_many:提交 提交bel​​ongs_to的:一批

我的意见表中有一个字段/列存储每个提交批次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个提交相关联,然后编辑该特定批次并取消选择所有提交并保存该批次,则不会保存更改。但是,如果我取消选择一个提交或选择另一个提交,则保存更改。

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

我真的对此感到困惑,并认为错误可能与check_box_tag有关。

如果有人能提供一些关于此的建议,我将不胜感激。

非常感谢您的帮助

回答

2

我遇到同样的问题一次。事情是,未经检查的框不会被发送。来源:http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-check_box

“疑难杂症 HTML规范说选中的复选框都没有成功,因此,Web浏览器不给他们[...]”

虽然它说,check_box_tag应该没问题(http://apidock.com/rails/ActionView/Helpers/FormTagHelper/check_box_tag ),我不得不通过隐藏的field_id来防止所有复选框被选中。

这是一般线索,但我希望它有帮助。你应该检查日志,如何以及如果id被传递(或者在没有人的情况下以不同的方式处理)。

祝你好运!

+0

非常感谢santuxus ...会看看这个,并按照你的建议..橱柜:) – tanya 2011-06-04 00:50:45