#質問
form_withで取得した情報をcreateアクションに送る際に、
createアクションの直下にbimding.pryを記述し確認しましたところ、
permitted: falseとの記述があり、データを送信することができません。。。(下記がエラー文です)
11: def create => 12: binding.pry 13: Item.create(item_params) 14: redirect_to root_path 15: 16: end [1] pry(#<ItemsController>)> params => <ActionController::Parameters {"authenticity_token"=>"KySMfhs2fAYIwAa3dDQ1N5jzG0lrYMb69DC1Xuuah9IqAC7jcJu+Xkp2JrjOy/oIvqBogf4Q0cyAKnZnFQjslQ==", "item"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0x00007fccfbc05380 @tempfile=#<Tempfile:/var/folders/9z/x6gm4xc952bf07dpsjws794h0000gn/T/RackMultipart20200902-28573-4nuw9z.jpg>, @original_filename="猫.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"item[image]\"; filename=\"\xE7\x8C\xAB.jpg\"\r\nContent-Type: image/jpeg\r\n">, "name"=>"仮", "description"=>"test", "shipping_method"=>"2", "brand"=>"aa", "condition"=>"2", "shipping_area"=>"1", "shipping_data"=>"3", "price"=>"11"}, "commit"=>"出品する", "controller"=>"items", "action"=>"create"} permitted: false>
#解決へ取り組んだこと
params.permitの記述が必要と思いコントローラーへ追記したのですが、
permitted: falseの表記は変わらないままでした。
下記にコードを記載しますので、助言頂けましたらと思います。
以上、宜しくお願い致します。
items_controller.rb
class ItemsController < ApplicationController def index @items = Item.all end def new @item = Item.new end def create binding.pry Item.create(item_params) redirect_to root_path end private def item_params params.require(:item).permit(:image,:name, :description,:brand,:condition,:shipping_area,:shipping_method,:shipping_data,:price,:user) end end
マイグレーションファイル
class CreateItems < ActiveRecord::Migration[6.0] def change create_table :items do |t| t.string :name, null: false t.string :image t.text :description, null:false t.string :brand t.string :condition, null: false t.string :shipping_burden t.string :shipping_method, null: false t.string :shipping_area, null: false t.integer :shipping_data, null: false t.integer :price, null: false t.references :user, null: false, foreign_key: true t.references :seller t.references :buyer t.timestamps end end end
#追記 9/2 21:22
ActiveRecord::RecordInvalid in ItemsController#create
バリデーションに失敗しました: Sellerを入力してください, Buyerを入力してください
上記のエラーが発生致しました。
回答1件
あなたの回答
tips
プレビュー