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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

6906閲覧

【Rails】Unpermitted parameter: : の解消

miyaengineer

総合スコア4

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2021/06/16 17:17

お世話になります。
railsにてAPIを作成中です。

データ保存時にエラーで動かない訳ではのですが、
HTTPメソッドPOST送信後のパラメーターの表示に違和感を覚えたのでご質問させていただきました。

下記3行めのparameterの内部で何故か重複するデータがハッシュとして送信されており、
かつその下にUnpermitted parameterの記載が発生してしまいます。

可能であれば表示させないようにしたいのですが、ご協力いただけますと幸いです。
下記の他、必要な情報がございましたらお申し付けください。

何卒よろしくお願い申し上げます。

コンソールでの表示

Started POST "/api/ver1/ideas" for ::1 at 2021-06-17 02:02:12 +0900 Processing by Api::Ver1::IdeasController#create as */* Parameters: {"category_name"=>"BBB", "body"=>"本文1", "idea"=>{"body"=>"本文1"}} Unpermitted parameter: :idea (0.1ms) BEGIN ↳ app/models/idea_category.rb:12:in `block in save' Category Load (0.2ms) SELECT `categories`.* FROM `categories` WHERE `categories`.`name` = 'BBB' LIMIT 1 ↳ app/models/idea_category.rb:12:in `block in save' Category Load (0.2ms) SELECT `categories`.* FROM `categories` WHERE `categories`.`id` = 3 LIMIT 1 ↳ app/models/idea_category.rb:13:in `block in save' Idea Create (0.2ms) INSERT INTO `ideas` (`body`, `category_id`, `created_at`, `updated_at`) VALUES ('本文1', 3, '2021-06-16 17:02:12.202604', '2021-06-16 17:02:12.202604') ↳ app/models/idea_category.rb:13:in `block in save' (0.6ms) COMMIT ↳ app/models/idea_category.rb:11:in `save' Completed 200 OK in 25ms (Views: 0.2ms | ActiveRecord: 5.9ms | Allocations: 11389)

モデルファイル

ruby

1class IdeaCategory 2 include ActiveModel::Model 3 attr_accessor :category_name, :body 4 5 with_options presence: true do 6 validates :category_name 7 validates :body 8 end 9 10 def save 11 ActiveRecord::Base.transaction do 12 category = Category.find_or_create_by!(name: category_name) 13 idea = Idea.create(body: body, category_id: category.id) 14 idea.save! 15 end 16 end 17end

コントローラーファイル

ruby

1class IdeasController < ApplicationController 2 # POST 3 def create 4 @idea_category = IdeaCategory.new(idea_params) 5 if @idea_category.valid? 6 @idea_category.save 7 render json: { status: 201, data: @idea_category } 8 else 9 render json: { status: 422, data: @idea_category.errors.full_messages } 10 end 11 end 12 13 private 14 def idea_params 15 params.permit(:category_name, :body) 16 end 17 end

試したこと

コントローラーファイルのideea_paramsメソッドにてpermitメソッド内部に:ideaを追記。→Unpermitted parameterは改善せず。

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

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

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

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

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

guest

回答1

0

ベストアンサー

下記3行めのparameterの内部で何故か重複するデータがハッシュとして送信されており、

かつその下にUnpermitted parameterの記載が発生してしまいます。

その値を送信するように記載されているのはビュー(あるいはAPIを呼ぶ側)です。そちらを確認してください。

投稿2021/06/16 22:51

編集2021/06/16 22:58
maisumakun

総合スコア145184

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

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

miyaengineer

2021/06/17 08:53 編集

maisumakan様 ご回答いただきありがとうございます。 おっしゃる通り呼び出し側を疑っております。 API作成に不慣れなもので、動作確認はpostmanを使用しております。 下記JSONを送信した結果、本題同様のparameterの結果が返されます。 { "category_name": "BBB", "body": "本文1" } postmanの仕様、あるいは何か設定があるのでしょうか・・・。 追加の質問となってしまい恐縮ですが、もしよろしければお願いいたします。
miyaengineer

2021/06/19 07:01

ありがとうございました! postmanについても調べてみたら、仕様的な部分もありましたので本質問は解決とさせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問