前提・実現したいこと
RailsとmySQLを使ってアプリを制作中です。フォーム入力時にストロングパラメータを設定してはいますが、「Unpermitted parameter: :text」というエラーが表示されてしまいます、ストロングパラメーターの記述はしているにもかかわらずbinding.pryでfalseの表示が出てしまいます。
解決方法などアドバイスいただけますでしょうか?
発生している問題・エラーメッセージ
ターミナルで発生しているエラーは下記の通りです。
(0.4ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483 Processing by AdminsController#create as HTML Parameters: {"authenticity_token"=>"6FliRjLzhJxQEePsQy/LczNj0pkcNus4/POnPsbqhbKTxeNlGpC2zsnfc2x4JdbGXEp7XB7cH2v66UsETcKBzA==", "job"=>{"text"=>"テスト文字テスト"}, "commit"=>"掲載する"} Unpermitted parameter: :text Rendering admins/create.html.haml within layouts/application Rendered admins/create.html.haml within layouts/application (Duration: 0.1ms | Allocations: 14) [Webpacker] Everything's up-to-date. Nothing to do Completed 200 OK in 22ms (Views: 18.7ms | ActiveRecord: 0.0ms | Allocations: 12969)
該当のソースコード
rails
1 .Job-wrapper 2 = form_with model: job, url:admins_path, html: {class: "job-wrapper"}, local: true do |form| 3 .Upper-contents 4 .User-contents__title 5 【案件を入力】 6 = form.text_field :text, maxlength: 64, class: "Upper-contents__name", placeholder: 'ここに文章を入力してください', autocomplete: "off" 7 .Button-wrapper 8 = form.submit '掲載する', class: 'Button-wrapper__button'
該当のコントローラー
rails
1 class AdminsController < ApplicationController 2 def index 3 @jobs = Job.all 4 end 5 6 def new 7 @job = Job.new 8 end 9 10 def create 11 binding.pry 12 @job = Job.create(job_params) 13 end 14 15 private 16 def job_params 17 params.require(:job).permit(:title) 18 end 19 end
試したこと
binding.pryを試してみたところcreateアクションまでPOSTできていますがpermitted:falseとなっています。本来ならこれを解決するためにpermitメソッドを使いtrueにするはずなのでどこがまちがっているのかあまりわかっていません。
rails
1 10: def create 2 => 11: binding.pry 3 12: @job = Job.create(job_params) 4 13: end 5 6[1] pry(#<AdminsController>)> params 7=> <ActionController::Parameters {"authenticity_token"=>"h0iHDcCfDBluSOU++5oTIrluu8XnzjgOo8+b/iH9vuzq7lqLCPYyW0TnNwDQsuc9ss1PO2B67sb7LU7ssKD9kQ==", "job"=>{"text"=>"テストテストテスト"}, "commit"=>"掲載する", "controller"=>"admins", "action"=>"create"} permitted: false> 8[2] pry(#<AdminsController>)> 9
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
rails
1 ruby '2.6.5' 2 3# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 4gem 'rails', '~> 6.0.0' 5# Use mysql as the database for Active Record 6gem 'mysql2', '>= 0.5.3' 7# Use Puma as the app server
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/06 11:46
2020/09/06 13:13
2020/09/06 15:18