在我的LinksController我有以下幾點:如何使一個Rails點擊鏈接影響計數器?
def vote
@link = Link.find(params[:link_id])
@link.votes << Vote.create!(user_id: @link.user_id, link_id: @link.id)
@link.totalcount = @link.votes.count
@link.save
redirect_to :root
end
我也有以下途徑:
root GET / links#index
link_vote GET /links/:link_id/vote(.:format) links#vote
link_link_vote GET /links/:link_id/link_vote(.:format) links#link_vote
link_down_vote GET /links/:link_id/down_vote(.:format) links#down_vote
links GET /links(.:format) links#index
POST /links(.:format) links#create
new_link GET /links/new(.:format) links#new
edit_link GET /links/:id/edit(.:format) links#edit
link GET /links/:id(.:format) links#show
PATCH /links/:id(.:format) links#update
PUT /links/:id(.:format) links#update
DELETE /links/:id(.:format) links#destroy
GET / links#index
我能夠打的路線,並導致TOTALCOUNT增加,甚至做的下降用另一種方法。然而,我掙扎,以打擊對link_vote路線,下面第一行:
<td><%= link_to link.url, "http://#{link.url}", link_link_vote_path(link) %></td>
<td><%= link.title %></td>
<td><%= link.totalcount %></td>
<td><%= link_to "UP", link_vote_path(link) %></td>
<td><%= link_to "DOWN", link_down_vote_path(link) %></td>
我LinksController有以下幾點:
def link_vote
@link = Link.find(params[:link_id])
@link.votes << Vote.create!(user_id: @link.user_id, link_id: @link.id)
@link.totalcount = @link.votes.count
@link.save
redirect_to :root
end
我得到下面當我嘗試加載:
undefined method `stringify_keys' for "/links/119/link_vote":String
我試過把link_link_vote_path(鏈接)放在超鏈接之前。獲得大致相同的信息:未定義的方法`stringify_keys'爲「http://adamswilliamson.name」:字符串。
我只是使用錯誤的路線或語法錯誤?
link_to的語法錯誤。瀏覽文檔 – krishnar