railsのルーティングがurlはあってそうなのにコントローラに通らない
railsのwebアプリでいいね機能を実装したいです。
ルーティングが間違っているのか、chromeでlocalhostで検証していいねのボタンをクリックしたところ、ビューには何も変化はなく、コンソールでは
destroyメソッド =>
POST http://localhost:3000/translations/103/likes/2 404 (Not Found)
createメソッド =>
POST http://localhost:3000/translations/104/likes 404 (Not Found)
となっており、ルーティングがうまく行ってないみたいなのですが、どこが悪いのかよく分かりません。
どなたか教えていただけませんか!!
likes controllerのdestroyのはじめにbinding.pryをつけても同じエラーなので、likes#destroy(またはcreate)にパスが通ってないみたいです、、
> routes.rb
resources :translations do
resources :likes, only: [:create, :destroy]
end
> show.html.erb
<% @translations.each do |translation| %>
...
<%= render "likes/like", translation:translation %>
...
<% end %>
> likes/_like.html.erb
<% if translation.like_user(@current_user.id) %>
<%= button_to translation_like_path(translation_id: translation.id),
method: :delete, id: "like-button", class: "btn-like", remote: true do %>
<%= image_tag('/icons/like-red.png') %>
<% end %>
<%= button_to translation_likes_path(translation_id: translation.id), id: "like-button", class: "btn-like", remote: true do %>
<%= image_tag('/icons/like.png') %>
<% end %>
コンソールでrake routesすると、
translation_likes POST /translations/:translation_id/likes(.:format) likes#create
translation_like DELETE /translations/:translation_id/likes/:id(.:format) likes#destroy
となってます。