ruby-on-rails – 动态URL – > Rails中路由的控制器映射
发布时间:2020-12-16 19:36:45 所属栏目:百科 来源:网络整理
导读:我希望能够根据我的数据库中的信息动态地将URL映射到控制器. 我正在寻找功能上等同于这一点的功能(假设View模型): map.route '/:view_name',:controller = lambda { View.find_by_name(params[:view_name]).controller } 其他人建议dynamically rebuilding
我希望能够根据我的数据库中的信息动态地将URL映射到控制器.
我正在寻找功能上等同于这一点的功能(假设View模型): map.route '/:view_name',:controller => lambda { View.find_by_name(params[:view_name]).controller } 其他人建议dynamically rebuilding the routes,但这对我来说不起作用,因为可能有数千个视图映射到同一个控制器 解决方法
这个问题很旧,但我觉得很有趣.可以使用路由器的路由到Rack端点的功能,在Rails 3中创建一个全面的解决方案.
创建以下机架类: class MyRouter def call(env) # Matched from routes,you can access all matched parameters view_name= env['action_dispatch.request.path_parameters'][:view_name] # Compute these the way you like,possibly using view_name controller= 'post' my_action= 'show' controller_class= (controller + '_controller').camelize.constantize controller_class.action(my_action.to_sym).call(env) end end 路线 match '/:view_name',:to => MyRouter.new,:via => :get 提示从http://guides.rubyonrails.org/routing.html#routing-to-rack-applications开始说:“对于好奇,”#索引“实际上扩展到PostsController.action(:index),它返回一个有效的Rack应用程序. 在Rails 3.2.13中测试的一个变体. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- vb6/ASP FORMAT MM/DD/YYYY
- ruby-on-rails – Rails:字段名称
- ruby-on-rails – ApplicationController中具有params值的类
- C++类的对象和类的指针的区别
- 交叉编译 – autotools:C编译器无法创建可执行文件
- c# – 更改* .json文件后IOptionsSnapshot不刷新
- react-native-image-viewer实现大图预览
- ruby-on-rails – 生产环境变量
- Selenium+java - 通过Robot对象上传文件
- Swift REPL:如何保存/加载REPL状态? (a.k.a.暂停/恢复,快