在我的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