前提・実現したいこと
インスタグラムのようなSNSアプリに
コメント機能といいね機能を追加したい。
ルーティングでは
投稿(Post)に対してコメントルートと、いいねルートをネストしようと考えている。
発生している問題・エラーメッセージ
ActionController::UrlGenerationError in Posts#show
が出ている。
###routes.rb resources :posts, only: [:index, :new, :create, :show] do resources :comments, only: [:create] do resources :likes, only: [:create, :destroy] end end
###show.html.haml - if current_user.already_liked?(@post) = link_to post_comment_like_path(@post, @comment), method: :delete, class: 'PostInfo__likes--blackIcon' do = icon('fas', 'heart') %span<> - else = link_to post_comment_likes_path(@post, @comment), class: 'PostInfo__likes--redIcon' do = icon('far', 'heart') %span<>
### $rails routes post_comment_likes POST /posts/:post_id/comments/:comment_id/likes(.:format) likes#create post_comment_like DELETE /posts/:post_id/comments/:comment_id/likes/:id(.:format) likes#destroy
### $user.controller.rb ※ユーザー詳細画面にいいね機能を足すので def show @post = Post.find(params[:id]) @comment = Comment.new @comments = @post.comments.includes(:user) @like = Like.new end
試したこと
コメントに対してのいいねではなく、投稿に対してのいいねを作りたいです。
投稿(Posts)自体にネストしたいのですが、コメント機能を先に作っていたので
投稿のルーティングにはコメントを先にネストしていました。
その場合は、さらに階層を一つ足して、いいねのルーティングをネストするべきなのしょうか。。?
この場合のルーティングの書き方、パスの指定方法わかる方教えていただきたいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/23 01:13