rails ルーティングエラーが発生してしまいました 初心者なので凡ミスかもしれませんがご教授ください
解決したいこと
ルーティングエラーが発生してしまったのでその修正がしたいです。
例)
Ruby on Railsでprogateで作ったものを元にTwitterのようなWebアプリをつくっています。
コメント機能の実装中にエラーが発生しました。
解決方法を教えて下さい。
コメントを投稿するとルーティングエラーが発生してしまいます。
発生している問題・エラー
Routing Error
No route matches [GET] "/posts"
Rails.root: /Users/----/app/コメント機能開発中
Application Trace | Framework Trace | Full Trace
Routes
Routes match in priority from top to bottom
該当するソースコード
routes.rb
Rails.application.routes.draw do
resources :posts, only: [] do
resources :comments
end
post 'comments/:id/create' => 'comments#create'
get 'comments/:id/destroy' => 'comments#destroy'
get 'searches' => 'posts#search'
get "likes/:post_id/create" => "likes#create"
get "likes/:post_id/destroy" => "likes#destroy"
post "users/:id/update" => "users#update"
get "users/:id/edit" => "users#edit"
post "users/create" => "users#create"
get "signup" => "users#new"
get "users/index" => "users#index"
get "users/:id" => "users#show"
post "login" => "users#login"
get "logout" => "users#logout"
get "login" => "users#login_form"
get "users/:id/likes" => "users#likes"
get "posts/index" => "posts#index"
get "posts/new" => "posts#new"
get "posts/:id" => "posts#show"
post "posts/create" => "posts#create"
get "posts/:id/edit" => "posts#edit"
post "posts/:id/update" => "posts#update"
get "posts/:id/destroy" => "posts#destroy"
get "/" => "home#top"
get "about" => "home#about"
end
comments_controller.rb
class CommentsController < ApplicationController
before_action :authenticate_user
def create
@post = Post.find_by(params[:post_id])
@comments = Comment.new(
content: params[:content],
user_id: @current_user.id,
post_id: @post.id
)
多分これが反応してない?--------------------------------------------------------------
if @comments.save
flash[:notice] = 'コメントを作成しました'
redirect_to("/posts/#{params[:post_id]}")
else
flash[:notice] = 'コメントの作成に失敗しました'
redirect_to("/posts/#{params[:post_id]}")
end
ここまで---------------------------------------------------------------------------
end
def destroy
@post = Post.find_by(params[:post_id])
@comments = Comment.find_by(params[:id])
@comments.destroy
flash[:notice] = 'コメントを削除しました'
redirect_to("/posts/#{params[:post_id]}")
end
end
最後まで読んでいただいてありがとうございます。
教えていただけると幸いです。
0