1

ユーザーがログインしなくても、thumbs_up gem を使用できますか? 基本的に、 http://www.yourather.comのように、誰でもログインせずに投票できるようにしたいと考えています。

最後に、コメントに投票しようとすると、ルーティング エラー メッセージが表示されます。記事に投票するときにも同じことが起こります。

No route matches [GET] "/comments/1/vote_up"

モデル:

class Comment < ActiveRecord::Base
  acts_as_voteable
end

class Article < ActiveRecord::Base
  acts_as_voteable
end

意見:

<%= link_to image_tag("up_arrow.jpeg"), vote_up_comment_path(@comment), 
    :method => 'post' %></br>
<%= link_to image_tag("down_arrow.jpeg"), vote_down_comment_path(@comment), 
    :method => 'post' %></br>

コントローラ:

def vote_up
  begin
    vote_for(@comment = Comment.find(params[:id]))
    render :nothing => true, :status => 200
  rescue ActiveRecord::RecordInvalid
    render :nothing => true, :status => 404
  end
end

def vote_down
  begin
    vote_against(@comment = Comment.find(params[:id]))
    render :nothing => true, :status => 200
  rescue ActiveRecord::RecordInvalid
    render :nothing => true, :status => 404
  end
end

Routes.rb:

resources :comments do
  member do
    post :vote_up
    post :vote_down
  end
end

resources :articles do
  member do
    post :vote_up
    post :vote_down
  end
end

レーキ ルート (関連部分):

vote_up_comment   POST    /comments/:id/vote_up(.:format)      comments#vote_up
vote_down_comment POST    /comments/:id/vote_down(.:format)    comments#vote_down
comments          GET     /comments(.:format)                  comments#index
                  POST    /comments(.:format)                  comments#create
new_comment       GET     /comments/new(.:format)              comments#new
edit_comment      GET     /comments/:id/edit(.:format)         comments#edit
comment           GET     /comments/:id(.:format)              comments#show
                  PUT     /comments/:id(.:format)              comments#update
                  DELETE  /comments/:id(.:format)              comments#destroy
vote_up_article   POST    /articles/:id/vote_up(.:format)      articles#vote_up
vote_down_article POST    /articles/:id/vote_down(.:format)    articles#vote_down
articles          GET     /articles(.:format)                  articles#index
                  POST    /articles(.:format)                  articles#create
new_article       GET     /articles/new(.:format)              articles#new
edit_article      GET     /articles/:id/edit(.:format)         articles#edit
article           GET     /articles/:id(.:format)              articles#show
                  PUT     /articles/:id(.:format)              articles#update
                  DELETE  /articles/:id(.:format)              articles#destroy
root                      /                                    voteables#index
                          /comment/:id(.:format)               comments#show
                          /article/:id(.:format)               articles#show

Rails 3 で「thumbs_up」投票ジェムを使用する方法の説明とその他の関連する質問を見てきましたが、うまくいきません。ありがとう

4

1 に答える 1

1

link_toのドキュメントには、:methodオプションはシンボルである必要があると記載されています。次の場所からビューを変更してみてください。

<%= link_to image_tag("up_arrow.jpeg"), vote_up_comment_path(@comment), 
:method => 'post' %></br>

<%= link_to image_tag("up_arrow.jpeg"), vote_up_comment_path(@comment), 
:method => :post %></br>
于 2012-08-13T16:50:27.417 に答える