前提・実現したいこと
Ruby on railsでメニューを作るアプリを作っています。
多対多のテーブルで作っていて、メニュー作成時にチェックボックスでコンテンツを選び、メニュー1にはコンテンツ1と2がある、という形にしたいと思っています。そのため中間テーブルを作成しそこにmenu_idとcontent_idとして保存したいです。
問題としてはメニュー作成時にcontent_idは送られているのに中間テーブルには何も保存されていないという状態です。
エラー画面は出ず、サーバーのログには Unpermitted parameter: :content_id と書かれています。
ストロングパラメーターで許可している部分に問題があると思っているのですが、ご教授いただけたら幸いです。
###試したこと
・unpermited parameter: content_idなのでcontent_idが許可されていない
サーバーのログにはcontent_idがパラメーターとして入っている
menu_paramsメソッドでcontent_ids:として保存されるようにしているはず…? というところでストロングパラメーターをいじってみたが成功しない
ソースコード
・menus_controller.rb def new @menu = Menu.new @content = Content.all end def create @menu = Menu.new(menu_params) if @menu.save redirect_to menus_path else render :new end end private def menu_params params.require(:menu).permit(:name, content_ids: []).merge(user_id: current_user.id) end
・サーバーのログ抜粋 Processing by MenusController#create as HTML Parameters: {"authenticity_token"=>"[FILTERED]", "menu"=>{"name"=>"メニュー11", "content_id"=>["1", "2", "3"]}, "commit"=>"Send"} Unpermitted parameter: :content_id
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。