Recommendableと呼ばれるDavid Celis gemを使用して、Railsアプリに同様のシステムを実装しています。コンソールですべてが機能するようになりましたが、正しいルートを取得できず、「[GET] に一致するルートがありません」「/categories/1/posts/1/like」というエラーが表示されます。
私のモデルには次のものがあります。
class Category < ActiveRecord::Base
has_many :posts, :dependent => :destroy
extend FriendlyId
friendly_id :name, use: :slugged
end
class Post < ActiveRecord::Base
belongs_to :category
end
私のポストコントローラーには次のものがあります。
class PostsController < ApplicationController
before_filter :authenticate_user!
before_filter :get_category
def like
@post = Post.find(params[:id])
respond_to do |format|
if current_user.like @post
else
flash[:error] = "Something went wrong! Please try again."
redirect_to show_post_path(@category, @post)
end
end
end
end
私のルートには次のものがあります:
resources :categories do
resources :posts do
put :like, :on => :member
end
end
match 'categories/:category_id/posts/:id', :to => 'posts#show', :as => 'show_post'
誰かが私のエラーを指摘できますか? PUT を機能させることはできますが、ユーザーが特定の投稿を気に入ったときにエラーが発生した場合に投稿にリダイレクトしようとしているときに、GET エラーがどこから来ているのかわかりません。前もって感謝します。
編集:
私の見解では:
- title "#{@post.class}"
%p#notice= notice
%p
%b Title:
= @post.title
%p
%b Description:
= @post.description
%p
%b Likes:
= @post.liked_by.count
= link_to 'Edit', edit_category_post_path(@post)
\|
= link_to 'Back', category_posts_path
\|
= link_to 'Like', like_category_post_path(@post)