我一直在靠墙试图找出这个傻瓜。
基本上,我有一个'引用'包含3个字段的模型 - content,author和votecount。
Votecount是一个整数,我希望能够使用链接从引号/索引视图添加投票(增量)。这是我到目前为止所提出的:
视图/报价/ index.html.erb
<% @quotes.each do |quote| %>
<tr>
<td><%= quote.content %></td>
<td><%= quote.author %></td>
<td><%= quote.votecount %></td>
<td><%= link_to 'Show', quote %></td>
<td><%= link_to 'Edit', edit_quote_path(quote) %></td>
<td><%= link_to 'Upvote', quote_upvote_path(quote) %></td>
<td><%= link_to 'Destroy', quote, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
quotes_controller.rb
def upvote
@quote = Quote.find(params[:id])
@quote.increment!(:votecount)
redirect_to quotes_path
end
的routes.rb
resources :quotes do
get 'upvote'
end
这是我收到的错误消息:
ActiveRecord::RecordNotFound in QuotesController#upvote
Couldn't find Quote with 'id'=
因此,该操作无法找到报价ID,但是它在实际的网址中,所以我不确定我在这里搞砸了什么!
答案 0 :(得分:0)
将upvote动作定义为成员动作:
resources :quotes do
get 'upvote', on: :member
end
有关详细信息,请参阅Rails routing documentation。