自作のアプリケーションで、投稿の削除をしようとすると、ルーティングエラーが出てしまいます。
ルーティングエラーが出ているので、
・route.rb内のコードが間違っていないか
・削除するボタンにHTTPメソッドのDELETEの指定がされていないか
を確認してみたところ、特に問題はなさそうでした。
また、アプリの画面を更新してみると、投稿の削除自体はできていました。
削除のボタンを押す→ルーティングエラーが出る→アプリを更新すると削除できている
といった状態になっています。
まだ初学者でして、もし解決策のアドバイスがあれば教えていただけますと嬉しいです。
開発環境
ruby on rails
visual studio code
実際のコード
routes.rb
Rails.application.routes.draw do devise_for :users root to:"communities#index" resources :communities, only: :index do resources :posts, only: [:index, :new, :create, :destroy] end resources :posts, only: :show do resources :comments, only: [:create, :destroy] end resources :users, only: [:show, :edit, :update] end
_main.html.erb
<div class= "post"> <h2>【取り組んだこと】</h2> <p class="post_content"><%= post.text %></p> <p class="post_content"><%= l post.created_at %></p> <% if user_signed_in? && current_user.id == post.user.id %> <%= link_to "投稿を削除する", community_post_path(post.community.id, post.id), method: :delete %> <% end %> <%= link_to "コメント", post_path(post.id) %> </div>
posts_controller.rb
def destroy set_post @post = Post.find(params[:id]) if current_user.id == @post.user.id @post.destroy redirect_to end end private def set_post @community = Community.find(params[:community_id]) end def post_params params.require(:post).permit(:text).merge(user_id: current_user.id,community_id: params[:community_id]) end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。