提交表单时保留check_box_tag的状态,即在表单验证错误后仍显示之前选中的状态。

4

我在表单帮助程序中使用check_box_tag,其他所有字段在提交验证错误后都会保留它们的输入,但是check_box_tag不会。有没有什么方法可以使check_box_tag在表单提交失败时保存其状态?以下是代码:

<%= check_box_tag 'user_ids[]', 
                  user.id,
                  false,
                  :class => 'user_checkbox' %>

我需要在这个情境下使用 check_box_tag 而非 check_box。
1个回答

8
您正在将false传递给check_box_tag,因此所有复选框都被禁用了。要解决这个问题,您可以做如下操作:
<%= check_box_tag 'user_ids[]', 
                  user.id, 
                  params[:user_ids].include?(user.id),
                  :class => 'user_checkbox' %>

它检查 user.id 是否在提交的用户ID列表中,如果是,则选中复选框。


5
谢谢,为了使其正常工作,我只需要在user.id上调用to_s方法即可。 - tks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接