我正在尝试开发一个reddit样式的网站,允许用户对链接进行投票。投票功能超出了resources :links
支持的基本CRUD我编写了上/下操作并将它们链接到视图但我不确定如何处理路由。有人可以演示如何路由到自定义控制器操作吗?我在下面附上了我的文件。谢谢
加载视图时收到此错误
No route matches {:controller=>"links", :action=>"up"}
链接控制器https://gist.github.com/1272577
答案 0 :(得分:2)
您可以使用此示例扩展resources
映射:
resources :links do
member do
match :up
match :down
end
end
这些操作必须在LinksController类中可用(与new,create ...相同)。 更多信息Ruby on Rails Guide: Rails Routing。
提示:更改实体状态的操作不应使用GET动词。这是因为搜索机器人或加速器可能会跟随您的投票链接。 你链接应该是:
<%= link_to "+", up_link_path, :method => :post, :rel => 'nofollow' %>
在控制器中应该只在if request.post?
内修改你的内容。您仍然应该支持GET不会导致404.