自定义控制器操作的路由
我正在尝试开发一个 reddit 风格的网站,允许用户对链接进行投票。投票功能超出了 resources :links
支持的基本 CRUD 我已经编写了向上/向下操作并将它们链接到视图,但我不确定如何处理路由。有人可以演示我如何路由到自定义控制器操作吗?我已在下面附上我的文件。谢谢,
时收到此错误
No route matches {:controller=>"links", :action=>"up"}
当我加载视图链接控制器 https://gist.github.com/1272577
I'm trying develop a reddit style site which allows users to vote on links. The voting feature goes beyond basic CRUD supported by resources :links
I've written the up/down actions and linked them to the view but I'm not sure how to handle routing. Could someone demonstrate how I would route to custom controller actions? I've attached my files below. Thanks
I receive this error when I load the view
No route matches {:controller=>"links", :action=>"up"}
Links Controller https://gist.github.com/1272577
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用以下示例扩展资源映射:
这些操作必须在 LinksController 类中可用(与 new、create... 相同)。
更多内容请参见 Ruby on Rails 指南:Rails 路由。
提示:更改实体状态的操作不应使用 GET 动词。这是因为搜索机器人或加速器可能会跟踪您的投票链接。
您的链接应该是:
并且在控制器中应该仅在
if request.post?
内修改您的实体。您仍然应该支持 GET 以免导致 404。You can extend
resources
mapping with this example:These actions must be available in LinksController class (same as new, create...).
More in Ruby on Rails Guide: Rails Routing.
Tip: actions changing state of entity should not use GET verb. This is because search bots or accelerator may follow your voting links.
You link should be:
And in controller should modify your entinty only inside
if request.post?
. You should still support GET to not cause 404s.