在表单提交验证错误后保留check_box_tag的状态

tks*_*tks 4 ruby-on-rails

我在表单助手中使用check_box_tag,并且在提交验证错误后所有其他字段都保留其输入,但check_box_tag没有.有没有办法让check_box_tag在失败的表单提交中保存其状态?这是代码:

<%= check_box_tag 'user_ids[]', 
                  user.id,
                  false,
                  :class => 'user_checkbox' %>
Run Code Online (Sandbox Code Playgroud)

我需要在此上下文中使用check_box_tag而不是check_box.

KL-*_*L-7 8

您传递falsecheck_box_tag所有复选框都被禁用.要解决这个问题,你可以像以下一样做:

<%= check_box_tag 'user_ids[]', 
                  user.id, 
                  params[:user_ids].include?(user.id),
                  :class => 'user_checkbox' %>
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢,我必须做的唯一改变就是在user.id上调用to_s (5认同)