我正在将 Thumb_Up gem 用于 Rails 上的 ruby。 https://github.com/brady8/thumbs_up
我希望用户能够对帖子进行投票。但是,我无法弄清楚如何允许用户单击每个帖子旁边的按钮并向数据库添加投票。
我可以通过执行以下操作在 Rails 控制台中实现这一点:
u=User.first
m=Micropost.first
u.vote_for(m)
但是,如何在视图中单击按钮时发生这种情况。我假设我必须使用 ajax,但我怎么知道我需要发布到的 url 以使这个动作发生?
任何帮助将不胜感激。
更新:
非常感谢你的帮忙!我仍然对下面的代码有问题。
这是我的路线.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"}
有谁知道为什么路线不正确匹配?