문제

나는 추천 가능한 David Celis Gem을 사용하여 Rails 앱에서 Like 시스템을 구현하고 있습니다.나는 콘솔에서 일하기 위해 모든 것을 얻었지만 올바른 경로를 얻을 수없고 "No Route match가 [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'
.

누군가가 내 오류를 가리킬 수 있습니까?나는 일을 할 수 있지만 사용자가 특정 게시물을 좋아할 때 오류가 발생하는 경우 오류가 발생하면 오류가 발생하면 POST로 다시 재전송하려고 할 때 오류가 어디에서 왔는지 알지 못합니다.미리 감사드립니다.

편집 :

내 뷰에서는 다음과 같습니다.

- 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)
.

도움이 되었습니까?

해결책

교체 :

= link_to 'Like', like_category_post_path(@post)
.

다음과 같이 :

= link_to 'Like', like_category_post_path(@category, @post), method: :put
.

또는 내가 좋아하는 것처럼 :

= link_to 'Like', [@category, @post], method: :put
.

당신의 like가 있어야한다고 생각합니다 :

def like
  @post = Post.find(params[:id])
  respond_to do |format|
    format.html do
      if current_user.like @post
        flash[:notice] = "It's ok, you liked it!"
        redirect_to :back
      else
         flash[:error] = "Something went wrong! Please try again."
         redirect_to show_post_path(@category, @post)
      end
    end
  end
end
.

다른 팁

경로는 PUT 요청을 발행하는 동안 GET 요청을 기대합니다.

앱이 PUT 요청 (올바른 솔루션)을 발행하거나 button_to 요청을 사용하도록 경로를 변경하도록 :method => :put를 통해 GET를 통해 경로에 액세스해야합니다.:

      get :like, :on => :member
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top