Rails高级路由知识:手动为路由创建名称
来源:互联网 发布:德川家光 知乎 编辑:程序博客网 时间:2024/06/04 20:03
常规在routes.rb中设定的路由规则,rails都会为我们顺便创建一个名称,比如:
risks GET /risks(.:format) risks#index POST /risks(.:format) risks#create new_risk GET /risks/new(.:format) risks#new edit_risk GET /risks/:id/edit(.:format) risks#edit risk GET /risks/:id(.:format) risks#show PATCH /risks/:id(.:format) risks#update PUT /risks/:id(.:format) risks#update DELETE /risks/:id(.:format) risks#destroy
如上所列,用resources :risks创建的增删改查的全套路由,注意最前面的诸如edit_risk之类的名称,后面加上path就可以在view或controller里使用了:
link_to("编辑风险",edit_risk_path(@risk))
很方便吧,你不用再费时写”/risks/#{id}”之类的东东了.
不过有些情况下,rails不会为个别方法创建名称,因为它不知道替你取什么名字好啊.比如我在risks中再添加一个新方法:
resources :risks do collection do post "fake_delete/:id"=>"risks#fake_delete" end end
上生成的路径就没有名称,不信!?你可以自己敲rake routes看一下:
POST /risks/fake_delete/:id(.:format) risks#fake_delete
哝,post前面没有东东吧!?为了方便起见我们还是想自己手动设一个名称,OK!相当的简单,在原路径后面加上as参数即可:
post "fake_delete/:id"=>"risks#fake_delete",as:"fake_delete"
再看生成的路由:
fake_delete_risks POST /risks/fake_delete/:id(.:format) risks#fake_delete
0 0
- Rails高级路由知识:手动为路由创建名称
- Rails高级路由知识:手动为路由创建名称
- Rails高级路由知识:筛选路由-路由冲突的优雅解决方案
- rails 路由
- Rails路由
- Rails路由
- rails 路由
- Rails路由
- rails 路由
- 高级路由
- Rails 路由原理
- rails中的路由设置
- rails 路由设置
- rails的URL路由
- Rails 路由详解
- rails URL路由
- rails之路由
- rails查看某个路由
- cpp——与c之不同——数组 字符串
- CSS的引入方式
- 模拟Hibernate底层生成SQL语句(反射机制)
- 汉诺塔之谜
- 链表程序.c
- Rails高级路由知识:手动为路由创建名称
- base64_encode +号变空格
- linux下的基本操作03(系统命令)
- cpp——与c之不同——struct union
- android/support/v4/hardware/display/DisplayManagerCompat$JellybeanMr1Impl.class
- Qt 5学习(二)QML
- Unity的50个使用技巧
- C++ — new和delete的总结
- cpp——与c之不同——函数