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

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

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

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

Ruby on Rails

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

バージョン管理

バージョン管理はコンピューター上にファイルとして格納されているドキュメント・プログラム・その他の情報の変更履歴等を管理するものです

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

618閲覧

ActionController::ParameterMissingと出てしまいます。

kie

総合スコア5

Ruby

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

Ruby on Rails

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

バージョン管理

バージョン管理はコンピューター上にファイルとして格納されているドキュメント・プログラム・その他の情報の変更履歴等を管理するものです

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2021/09/12 13:49

編集2021/09/13 00:57

前提・実現したいこと

ruby on railsにてレビューアプリを作成しています。
実際にレビューを投稿しようとした所エラーが発生してしまいました。

発生している問題・エラーメッセージ

ActionController::ParameterMissing in ReviewsController#create param is missing or the value is empty: reviews def review_params params.require(:reviews).permit(:image,:title,:category_id,:detail,:directer,:starring,:rate).merge(user_id: current_user.id) end end Request Parameters: {"authenticity_token"=>"RWNML9Q12eoFIxKEna58FQnzDVFZDM402ph1KneafH7FHpX8thCt7AucnnmrFxoYmqN7HWwzivAHlcErBDQ9WA==", "image"=> #<ActionDispatch::Http::UploadedFile:0x00007fe042bce740 @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"image\"; filename=\"no_image.jpeg\"\r\n" + "Content-Type: image/jpeg\r\n", @original_filename="no_image.jpeg", @tempfile=#<File:/var/folders/ff/b5bwglv53152xq7gvm40wtvr0000gp/T/RackMultipart20210912-14159-1iximnq.jpeg>>, "title"=>"a", "detail"=>"a", "category_id"=>"2", "director"=>"a", "starring"=>"a", "rate"=>"", "post"=>{"rate"=>"3"}, "commit"=>"レビューを投稿する"}

該当のソースコード

ruby

1class ReviewsController < ApplicationController 2 3 def index 4 @reviews = Review.all 5 end 6 7 def new 8 @reviews = Review.new 9 end 10 11 def create 12 @reviews = Review.new(review_params) 13 if @reviews.save 14 redirect_to root_path 15 else 16 render :index 17 end 18 end 19 20 21 private 22 23 def redirect_root 24 redirect_to root_path unless current_user.id == @reviews.user_id 25 end 26 27 def review_params 28 params.require(:reviews).permit(:image,:title,:category_id,:detail,:directer,:starring,:rate).merge(user_id: current_user.id) 29 end 30 31end 32

new

1<div class="review-contents"> 2 <header class="review-header"> 3 <%= link_to image_tag('movie-logo.png' , size: '185x50'), "/" %> 4 </header> 5 <div class="review-main"> 6 <h2 class="review-title">映画の情報を入力</h2> 7 <%= form_with(model: @review, local: true ) do |f| %> 8 9 <%# 映画画像 %> 10 <div class="img-upload"> 11 <div class="weight-bold-text"> 12 映画画像 13 <span class="indispensable">必須</span> 14 </div> 15 <div class="click-upload"> 16 <p> 17 クリックしてファイルをアップロード 18 </p> 19 <%= f.file_field :image, id:"review-image" %> 20 21 </div> 22 </div> 23 <%# /映画画像 %> 24 <%# 映画名と説明 %> 25 <div class="new-review"> 26 <div class="weight-bold-text"> 27 映画タイトル 28 <span class="indispensable">必須</span> 29 </div> 30 <%= f.text_area :title, class:"review-text", id:"review-name", placeholder:"映画タイトル(必須 40文字まで)", maxlength:"40" %> 31 <div class="review-explain"> 32 <div class="weight-bold-text"> 33 映画の評価 34 <span class="indispensable">必須</span> 35 </div> 36 <%= f.text_area :detail, class:"review-text", id:"item-info", placeholder:"映画の評価(必須 1,000文字まで)(映画内容、演出、良かった点、悪かった点など)" ,rows:"7" ,maxlength:"1000" %> 37 </div> 38 </div> 39 <%# /映画名と映画説明 %> 40 41 <%# 映画の詳細 %> 42 <div class="review-detail"> 43 <div class="weight-bold-text">映画の詳細</div> 44 <div class="form"> 45 <div class="weight-bold-text"> 46 映画のジャンル 47 <span class="indispensable">必須</span> 48 </div> 49 <%= f.collection_select(:category_id, Category.all, :id, :name, {}, {class:"select-box", id:"item_category"}) %> 50 <div class="weight-bold-text"> 51 監督名 52 <span class="indispensable">必須</span> 53 </div> 54 <%= f.text_area :director, class:"review-text", id:"review-name", placeholder:"監督名", maxlength:"40" %> 55 <div class="weight-bold-text"> 56 主演俳優、主演女優 57 <span class="indispensable">必須</span> 58 </div> 59 <%= f.text_area :starring, class:"review-text", id:"review-name", placeholder:"主演俳優、主演女優", maxlength:"40" %> 60 61 <div class="field" id="star"> 62 63 <%= f.label :rate, "星評価:" %> 64 <%= f.hidden_field :rate, id: :review_star %> 65 <script> 66 $('#star').raty({ 67 size : 36, 68 starOff: '<%= asset_path('star-off.png') %>', 69 starOn : '<%= asset_path('star-on.png') %>', 70 starHalf: '<%= asset_path('star-half.png') %>', 71 scoreName: 'post[rate]', <%# rateカラムへの保存 %> 72 half: true, <%# 星半分の入力 %> 73 }); 74 </script> 75 </div> 76 </div> 77 </div> 78 <%# /商品の詳細 %> 79 80 81 <%# 下部ボタン %> 82 <div class="review-contents"> 83 <%= f.submit "レビューを投稿する", class:"review-btn" %> 84 <%=link_to 'もどる', root_path, class:"back-btn" %> 85 </div> 86 <%# /下部ボタン %> 87 </div> 88 <% end %> 89 </div> 90</div>

試したこと

カラムに必要事項がないかと思い確認しましたが、全て存在していました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

neko_daisuki

2021/09/12 15:17

エラー画面の下の方にある Parameters: と、new.html.erb を追記してください
kie

2021/09/13 00:57

追記しました!
guest

回答1

0

ベストアンサー

params に reviews というフィールドが含まれていないにも関わらず、
params.require(:reviews) としているので、ActionController::ParameterMissing になります。

以下のように review_params を修正します。

ruby

1def review_params 2 params.permit(:image,:title,:category_id,:detail,:directer,:starring,:rate) 3 .merge(user_id: current_user.id) 4end

なぜ params に reviews が含まれないかというと、おそらく、
form が f.file_field を含むため、multipart/form-data 形式になってるためです。
(この辺は知識がないため自信がありません)

投稿2021/09/13 09:28

neko_daisuki

総合スコア2090

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問