フォームから送信されているものと、Railsサーバーがパラメーターとして識別しているものとの間に矛盾があるようです...私が何か間違ったことをしている/パラメーター配列の仕組みを理解していない限り...可能です。
これがチェックボックスの作成方法です。
current_event.competitions.map { |competition|
content_tag(:div, class: "checkbox"){
check_box_tag("attendance[competition_ids]", competition.id, @attendance.competitions.include?(competition.id)) +
label("attendance[competition_ids]", competition.id, label_with_price(competition))
}
}.join.html_safe
これは、Chrome Web インスペクターがサーバーに送信されていると言っているものです。
attendance[competition_ids]:1
attendance[competition_ids]:2
attendance[competition_ids]:3
しかし、Rails は次のエラーをスローしています。
ActiveModel::ForbiddenAttributesError
これは私のparamsヘルパーメソッドであり、私のコントローラーです
params[:attendance].permit(:package, :level, competition_ids: [])
rails で識別される params: パラメータ:
{"utf8"=>"✓",
"authenticity_token"=>"qZ1gtwZoXgs9P0HdberzrsMO7L1NftmB8yGso0WquOY=",
"attendance"=>{"competition_ids"=>"3"},
"discounts"=>[""],
"commit"=>"Register"}
私のパラメータはもっと似ているべきではありません:
"attendance"=>{"competition_ids"=>["1","2","3"]}
?