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

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

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

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

Q&A

1回答

1498閲覧

リプライ機能を作っている途中で、param is missing or the value is empty: replyというエラーを直したい。

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 5

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

0グッド

0クリップ

投稿2018/08/27 13:33

編集2018/08/29 16:26

ツイッターのようなリプライ機能を作りたい

ツイートする機能、またそのツイートしたものをお気に入りにできたりする機能などを付けて、リプライ機能も付けようと思ったのですが以下のエラーメッセージが発生してしまいました。ruby on rails初心者のため、ごちゃごちゃな感じになってると思いますがお願いします。

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

ActionController::ParameterMissing in RepliesController#create param is missing or the value is empty: reply

該当のソースコード

ruby

1class RepliesController < ApplicationController 2 before_action :require_user_logged_in 3 before_action :correct_user, only: [:destroy] 4 5 def create 6 @reply = current_user.replies.build(reply_params) 7 @micropost = @reply.micropost 8 if @reply.save 9 flash[:success] = "メッセージをリプライしました" 10 redirect_to @micropost 11 else 12 @replies = @micropost.replies 13 flash.now[:danger] = "リプライの投稿に失敗しました" 14 render 'microposts/show' 15 end 16 end 17 18 def destroy 19 @micropost.destroy 20 flash[:success] = 'メッセージを削除しました。' 21 redirect_back(fallback_location: root_path) 22 end 23 24 def show 25  @micropost = Micropost.find(params[:id]) 26  @reply = Reply.new(micropost_id: @micropost.id) 27  @replies = @micropost.replies 28 end 29 30 private 31 32 def reply_params 33 params.require(:reply).permit(:content) 34 end 35 36 def correct_user 37 @reply = current_user.replies.find_by(id: params[:id]) 38 unless @reply 39 redirect_to root_url 40 end 41 end 42end

マイグレーション

class

1 def change 2 create_table :replies do |t| 3 t.references :user, foreign_key: true 4 t.references :micropost, foreign_key: true 5 t.string :content 6 7 t.timestamps 8 end 9 end 10end

試したこと

他のファイルでparamに関係しているところをチェックした。

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

ruby 2.4.1
Rails 5.0.7

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

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

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

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

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

guest

回答1

0

param is missing or the value is empty: reply

一目瞭然でparams.require(:reply)が見つからないもしくは空ですよって意味にしか見えないんですが...

投稿2018/08/28 01:20

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2018/08/28 09:34

つまりparamに何か値を入れろってことですか?
退会済みユーザー

退会済みユーザー

2018/08/29 00:16

いいえ、取得したparamに何も入っていませんでしたということです。 取得するものは本当に`params.require(:reply)`で正しいのか確認してください。
退会済みユーザー

退会済みユーザー

2018/08/29 16:35

def reply_params params.require(:reply).permit(:content) こうやってcontentをreplyからとってくるようにして、replyの中身もcontentが入っている状態にしていたと思うのですが…どうやってparamに値を入れるのですか?(replyで正しいです)
退会済みユーザー

退会済みユーザー

2018/08/30 00:08

フォームの書き方が悪いのかもしれませんね、viewファイルを見直してみては?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問