質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2100閲覧

railsでpramsへ送るデータがpermitted: falseとなり送れない

akito_tl

総合スコア2

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/09/02 10:28

編集2020/09/02 12:24

#質問

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を入力してください
上記のエラーが発生致しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nasuk47

2020/09/02 11:43

Item.create!(item_params) とすると保存に失敗した内容のエラーが表示されると思います。 こちらを追記お願いします。
akito_tl

2020/09/02 12:24

上記にエラーを追記致しました。 ご確認の程お願い致します。
nasuk47

2020/09/02 12:27

sellerとbuyerを入力してくださいとありますが、、、 これらを入力すれば解決しそうですが
akito_tl

2020/09/02 12:50

sellerとbuyer送信するようにすると解決致しました! 非常に助かりました。 ありがとうございます。
nasuk47

2020/09/02 22:01

よかったです。
guest

回答1

0

自己解決

送る要素が足りなかったので追加したら解決しました。
(nasuk47さんありがとうございました)

投稿2020/09/02 13:09

編集2020/09/03 11:43
akito_tl

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nasuk47

2020/09/02 22:05

修正依頼なので回答とは異なるためベストアンサーにはできません。 送る要素が足りなかったので追加したら解決しました。 のような内容を解決した方法に記載すればいいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問