我在軌道上使用Ruby_的Thumb_Up寶石。 https://github.com/brady8/thumbs_up如何使用Rails 3 gem方法更新數據庫模型?
我希望用戶能夠對帖子投票。 但是,我無法弄清楚我如何允許用戶單擊每個帖子旁邊的按鈕並向數據庫添加投票。
我能得到這個在軌控制檯上執行,通過執行以下操作:
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」}
會有人知道爲什麼路線不正確匹配?
是的,這是更清晰一點。它看起來像在您的視圖中,@micropost實際上並未設置爲Micropost記錄。不管渲染視圖需要設置@micropost的操作,就像_vote_操作正在做的一樣。 – bioneuralnet 2011-04-14 15:33:59