Ruby on Rails に Thumb_Up gem を使用しています。 https://github.com/brady8/thumbs_up
ユーザーが投稿に投票できるようにしたい。ただし、ユーザーが各投稿の横にあるボタンをクリックしてデータベースに投票できるようにする方法がわかりません。
Railsコンソールでこれを実現するには、次のようにします。
u=User.first
m=Micropost.first
u.vote_for(m)
ただし、ビューでボタンをクリックしたときにこれを実現するにはどうすればよいですか。私は ajax を使用する必要があると想定していますが、このアクションを実行するために投稿する必要がある URL をどのように知ることができますか?
どんな助けでも大歓迎です。
アップデート:
助けてくれてどうもありがとう!私はまだ以下のコードに問題があります。
ここに私のroutes.rbがあります
resources :microposts do
post :vote, :on => :member
end
意見:
<%= link_to('vote for this post!', vote_micropost_path(@micropost), :method => :post) %>
コントローラ:
def vote
@micropost = Micropost.find(params[:id])
current_user.vote_for @micropost
# This assumes you'll only call it via AJAX.
# If your ajax call doesn't return "ok", then you know something went wrong
render :text => 'ok', :layout => false
end
ただし、まだこのエラーが発生します: ルートが一致しません {:controller=>"microposts", :id=>#, :action=>"vote"}
ルートが正しく一致しない理由を誰かが知っていますか?