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

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

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

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby

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

Ruby on Rails

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

Q&A

解決済

1回答

1770閲覧

redirect_toで、投稿詳細画面に飛ばしたい。

ckr

総合スコア23

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/03/20 04:44

編集2020/03/20 04:45

現在、Rails 5.2を用いてInstagramのクローン風のアプリを作成しております。
画像を投稿したタイミングで、redirect_toを用いて投稿詳細画面に
飛ばしたいのですが、下記のコードを設定しても投稿詳細画面へ移行しない状況です。

postsコントローラ

1class PostsController < ApplicationController 2 before_action :authenticate_user! 3 before_action :set_post, only: %i(show destroy) 4 5 6 def index 7 @posts = Post.all.includes(:photos, :user).order('created_at DESC') 8 end 9 10 def show 11 @post = Post.find_by(id: params[:id]) 12 end 13 14 def new 15 @post = Post.new 16 @post.photos.build 17 end 18 19 def create 20 @post = Post.new(post_params) 21 if @post.photos.present? 22 @post.save 23 redirect_to controller: 'posts', action: 'index' 24 flash[:notice] = "投稿が保存されました" 25 else 26 redirect_to root_path 27 flash[:alert] = "投稿に失敗しました" 28 end 29 end 30 31 32 def destroy 33 if @post.user == current_user 34 flash[:notice] = "投稿が削除されました" if @post.destroy 35 else 36 flash[:alert] = "投稿の削除に失敗しました" 37 end 38 redirect_to root_path 39 end 40 41 private 42 def post_params 43 params.require(:post).permit(:caption, photos_attributes: [:image]).merge(user_id: current_user.id) 44 end 45 46 def set_post 47 @post =Post.find_by(id: params[:id]) 48 end 49end 50 51

route.rb

1 post_photos POST /posts/:post_id/photos(.:format) photos#create 2 post_likes POST /posts/:post_id/likes(.:format) likes#create 3 post_like DELETE /posts/:post_id/likes/:id(.:format) likes#destroy 4 post_comments POST /posts/:post_id/comments(.:format) comments#create 5 post_comment DELETE /posts/:post_id/comments/:id(.:format) comments#destroy 6 posts GET /posts(.:format) posts#index 7 POST /posts(.:format) posts#create 8 new_post GET /posts/new(.:format) posts#new 9 post GET /posts/:id(.:format) posts#show 10 DELETE /posts/:id(.:format) posts#destroy

★試してみたこと
redirect_to post_pathとredirect_to post_path(post)
と修正し、投稿してみましたが
うまくいきませんでした。

恐れ入りますが、アドバイスをいただきたく、何卒宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

詳細ページはshowアクションですよね。なら
redirect_to controller: 'posts', action: 'index'
ではなく
redirect_to controller: 'posts', action: 'show'
とかではないでしょうか。

投稿2020/03/20 07:07

yamada_yuuki

総合スコア100

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

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

ckr

2020/03/20 07:46

コメントありがとうございました。 大変失礼いたしました、showアクションのためredirect_to controller: 'posts', action: 'show'でした。。 indexをshowに修正させていただきましたが、現時点で投稿詳細ページに飛ばない状況です。 もし他に何か手段がございましたらご教示いただけますと幸いです。何卒宜しくお願い致します。
yamada_yuuki

2020/03/20 08:37

ならば redirect_to "/posts/#{@post.id}" でどうでしょうか。
ckr

2020/03/20 08:52

無事、投稿詳細ページに飛ぶことができました! 大変助かりました、ありがとうございます・・・
yamada_yuuki

2020/03/20 09:52

無事解決してよかったです(^^)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問