初歩的なお話ですみません。
twitterのような簡易アプリを作成しているのですが、ルーティングの構成で躓いてしまいました。
削除を実装しようとしていた所です。
削除のビューへ飛んだら
DELETE /tweets/:id(.:format) tweets#destroy
こちらにパスされます。
ここまでは問題なくできているのですが、画面の左上のリロードするマークを押してリロードすると
showアクションが動き出すので、show.html.hamlに記述した内容が反映されます。
何故、showが動くのでしょうか?
showは詳細を実装する時に使うと思っていたのですが・・・(今回の内容では詳細は実装しません)
routes.rb
Rails.application.routes.draw do devise_for :users root 'tweets#index' patch '/tweets/:id/edit', to: 'tweets#update' resources :tweets do resources :comments, only: [:index, :create] end end
ルーティングはこのようになっています。
今は、resources :tweets doにしていますが、使わないアクションがいくつかあるので
全て実装終わった時に変更しようと思っていますが、これが原因だったりしますでしょうか?
かなり初歩的な質問ですが、ご回答頂けると助かります。
よろしくお願いします。
#補足
def destroy tweet = Tweet.find(params[:id]) if tweet.user_id == current_user.id tweet.destroy end end
destroy.html.haml
.destroy .destroy2 削除できました = link_to "戻る", "/", class: "destroy3"
index.html.haml
.chatmain - @tweets.each do |tweet| .tweets .name = tweet.user.name .messa = tweet.text = link_to "返信", "tweets/#{tweet.id}/comments", class: "comments" - if user_signed_in? && current_user.id == tweet.user_id = link_to "編集", "/tweets/#{tweet.id}/edit", method: :get, class: "edit" = link_to "削除", "/tweets/#{tweet.id}", method: :delete, class: "delete" .time = tweet.created_at.strftime("%Y/%m/%d %H:%M") .tweets2 = link_to new_tweet_path do %i.fas.