チェックボックスをoffにしているときは0、onにしているときは1を渡したいのですが、複数のチェックボックスで実現させようとすると、うまくいきません。
写真のような場合だと、{"0","1","0","1","0"}という結果を得たいです。
Ruby
1<%= @group.name %> 2<%= form_for(@shift, url: shift_create_path) do |k| %> 3 <% [*1..5].each do |c| %> 4 <%= c %> 5 <%= k.check_box :checkbox, {multiple: true ,include_hidden: false }, checked_value = "1", unchecked_value = "0" %> 6 7 <% end %> 8 <%= k.submit "作成" %> 9<% end %>
. . . def shift_create @group = Group.find_by(params[:id]) @shift = Shift.new(shift_params) @shift.save @shift = @shift redirect_to @group end private def shift_params params.require(:shift).permit({:checkbox => []}) end def group_params params.require(:group).permit(:name, :password, :password_confirmation) end end
サーバーの結果を見ると
shift"=>{"checkbox"=>["1", "1"]}, "commit"=>"作成"}
になってました。
include_hidden をtrueにすると,
shift"=>{"checkbox"=>["0", "0", "1", "0", "0", "1", "0"]}, "commit"=>"作成"}
になってしまいます。わかる方いればよろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。