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

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

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

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

Q&A

解決済

2回答

810閲覧

SyntaxError (コメントを投稿できない)

raamenzurururu

総合スコア11

Ruby on Rails

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

0グッド

0クリップ

投稿2020/06/14 14:20

編集2020/06/15 14:28

前提・実現したいこと

コメントを投稿できるようにしたいです。

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

SyntaxError (/Users/xxx/practic/taskleaf/app/controllers/comments_controller.rb:8: syntax error, unexpected ':', expecting `end' redirect_back = flash: { ^ ):

関係がありそうなコード

class CommentsController < ApplicationController def create comment = Comment.new(comment_params) if comment.save flash[:notice] = 'コメントを投稿しました' redirect_to comment.task else redirect_back, flash: { comment: comment, error_messages: comment.errors.full_messages } end end def destroy end private def comment_params params.require(:comment).permit(:board_id, :name, :comment) end end
class TasksController < ApplicationController before_action :set_task, only: [:show, :edit, :update, :destroy] def index @q = current_user.tasks.ransack(params[:q]) @tasks = @q.result(distinct: true).page(params[:page]) end def show @comment = @task.comments.new end
.p-comment__formBox .p-comment__formTitle コメント記入 = form_for comment do |f| = f.hidden_field :task_id .form-group = f.label :name, '名前' = f.text_field :name, class: 'form-control' .form-group = f.label :comment, 'コメント' = f.text_area :comment, class: 'form-control', rows: 4 = f.submit '送信', class: 'btn btn-primary'

完成させたいこと

イメージ説明

コメントを入力後に表示させたいです。

わかる方がいましたらご協力お願いしますm(_ _)m

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

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

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

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

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

guest

回答2

0

自己解決

Rails 日記App制作 Rails5.2以上でのredirect_backの使い方 | Git
このサイトを参考にコードを

redirect_back fallback_location: posts_path, flash: {

に変更したらエラーがでなくなりました(^^)

コメントを下さった方ありがとうございました。

投稿2020/06/16 10:17

raamenzurururu

総合スコア11

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

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

0

プログラムは画像貼り付けではなく<code>を用いたtext貼り付けにしてください。

saveに失敗とその結果のredirectでのFATALと両方有りますが、後者のほう。

redirect_to :back になっていますが、そのback というのにあたるrouteが定義できていないためのFATALです。どこに行きたいのでしょう?

追記
redirect_back, flash: のカンマが不要です

投稿2020/06/14 14:46

編集2020/06/15 14:35
winterboum

総合スコア23329

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

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

raamenzurururu

2020/06/14 22:49

winterboumさんご指摘ありがとうございます。 codeは自宅に戻ったら修正します。 エラーはsaveに失敗とredirect_to:backが原因なんですね。 一つ前のページに戻したいと思ってるのですが、codeの内容がいまいちわかってないため何をどうすればいいのか曖昧です(T_T)
winterboum

2020/06/14 22:51

「一つ前」というのは具体的にはどこでしょう?
Mugheart

2020/06/15 00:38 編集

redirect_to :back は確か5.0まで存在していた直前のページにリダイレクトする書き方ですね。 使っているRailsのバージョンが明記されてないのでわかりませんが、 もし、5.1以降を使われている場合は redirect_to :back は無くなっていますので、 別の方法を試してください。 redirect_back というメソッドに変わっているみたいです。 https://apidock.com/rails/v6.0.0/ActionController/Redirecting/redirect_back
raamenzurururu

2020/06/15 14:31

Mugheartさんご指摘ありがとうございます。 リンクまで貼っていただきありがとうございます。 自分のバージョンは5.1以降だったためコードを変更しました。 そしたらエラー内容が変わって進歩があったのですが、解決はしていません。 投稿内容を変更しましたので、もし解決策をご存知であれば教えていただきたいですm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問