0

フォームから送信されているものと、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"]}

?

4

1 に答える 1