rails7でいいね機能Ajax化でのエラー

実現したいこと

rails7でいいね機能をAjax化で実装したいです。

前提

rails "~> 7.0.4", ">= 7.0.4.3"
ruby "3.2.2"

相手の掲示板にあるいいねアイコンをクリックするとWebブラウザ上で非同期通信を行い、ページの再読み込みなしにページを更新するAjax化をしたいと考えております。

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

相手の掲示板にあるいいねアイコンをクリックする

Routing Error No route matches [GET] "/likes"

エラーとなります。

該当のソースコード

いいねアイコンの部分のコードです。
app/views/movierecords/_like.html.erb

<%= link_to likes_path(post_id: post.id), id: "js-like-button-for-post-#{post.id}", class:"float-right", data: { "turbo-method": :post }, remote: true do %> <i class="fa-regular fa-thumbs-up" style="color: black;"></i> <span style="color: black;"><%= post.likes.count %></span> <% end %>

config/routes.rb

Rails.application.routes.draw do root 'static_pages#top' get 'login', to: 'user_sessions#new' post 'login', to: 'user_sessions#create' delete 'logout', to: 'user_sessions#destroy' resources :users, only: %i[new create] resources :posts resources :posts do collection do get :likes end end resources :likes, only: %i[create destroy] resource :profile, only: %i[show edit update] end

試したこと

初めは、

<%= link_to likes_path(post_id: post.id), id: "js-like-button-for-post-#{post.id}", class:"float-right", method: :post, remote: true do %> <i class="fa-regular fa-thumbs-up" style="color: black;"></i> <span style="color: black;"><%= post.likes.count %></span> <% end %>

でエラーとなり調べたところRails7では、 method: :postの部分をdata: { "turbo-method": :post }にすると書いてありそのようにしたところ同じエラーにとなりました。

補足情報(FW/ツールのバージョンなど)

参考にしたサイト
掲示板にブックマーク機能の実装方法
https://osamudaira.com/217/
Ajaxを使ったブックマークボタンの実装
https://osamudaira.com/224/
Rails 7.0 + Ruby 3.1でゼロからアプリを作ってみたときにハマったところあれこれ
https://qiita.com/jnchito/items/5c41a7031404c313da1f

コメントを投稿

0 コメント