ruby-on-rails-3 – Rails _path helper生成路径,格式不是id
发布时间:2020-12-17 02:33:28 所属栏目:百科 来源:网络整理
导读:在我的routes.rb我有: resources :aquariums do resources :management_roles resources :graphs resources :animals end get 'aquarium',to: 'aquariums#show',:as = :aquarium 最后得到的原因是我在我的应用程序中有“当前水族馆”的概念.如果,例如,curre
在我的routes.rb我有:
resources :aquariums do resources :management_roles resources :graphs resources :animals end get 'aquarium',to: 'aquariums#show',:as => :aquarium 最后得到的原因是我在我的应用程序中有“当前水族馆”的概念.如果,例如,current_aquarium设置为1,那么在我的控制器的’show’动作’/ aquarium’获得与’/ aquariums / 1’相同的渲染,代码类似 @aquarium_id = params[:id] || current_aquarium.id 现在,我假设这是由于这个不同的路由,这段代码: <%= link_to aquarium.name,aquarium %> 要么 <%= link_to aquarium.name,aquarium_path(aquarium) %> 生成这样的路径: /aquarium.1 我通常期望的地方: /aquariums/1 对? 每个请求……这是rake路由| grep aquar产量: aquarium_management_roles GET /aquariums/:aquarium_id/management_roles(.:format) management_roles#index POST /aquariums/:aquarium_id/management_roles(.:format) management_roles#create new_aquarium_management_role GET /aquariums/:aquarium_id/management_roles/new(.:format) management_roles#new edit_aquarium_management_role GET /aquariums/:aquarium_id/management_roles/:id/edit(.:format) management_roles#edit aquarium_management_role GET /aquariums/:aquarium_id/management_roles/:id(.:format) management_roles#show PUT /aquariums/:aquarium_id/management_roles/:id(.:format) management_roles#update DELETE /aquariums/:aquarium_id/management_roles/:id(.:format) management_roles#destroy aquarium_graphs GET /aquariums/:aquarium_id/graphs(.:format) graphs#index POST /aquariums/:aquarium_id/graphs(.:format) graphs#create new_aquarium_graph GET /aquariums/:aquarium_id/graphs/new(.:format) graphs#new edit_aquarium_graph GET /aquariums/:aquarium_id/graphs/:id/edit(.:format) graphs#edit aquarium_graph GET /aquariums/:aquarium_id/graphs/:id(.:format) graphs#show PUT /aquariums/:aquarium_id/graphs/:id(.:format) graphs#update DELETE /aquariums/:aquarium_id/graphs/:id(.:format) graphs#destroy aquarium_animals GET /aquariums/:aquarium_id/animals(.:format) animals#index POST /aquariums/:aquarium_id/animals(.:format) animals#create new_aquarium_animal GET /aquariums/:aquarium_id/animals/new(.:format) animals#new edit_aquarium_animal GET /aquariums/:aquarium_id/animals/:id/edit(.:format) animals#edit aquarium_animal GET /aquariums/:aquarium_id/animals/:id(.:format) animals#show PUT /aquariums/:aquarium_id/animals/:id(.:format) animals#update DELETE /aquariums/:aquarium_id/animals/:id(.:format) animals#destroy aquariums GET /aquariums(.:format) aquariums#index POST /aquariums(.:format) aquariums#create new_aquarium GET /aquariums/new(.:format) aquariums#new edit_aquarium GET /aquariums/:id/edit(.:format) aquariums#edit aquarium GET /aquariums/:id(.:format) aquariums#show PUT /aquariums/:id(.:format) aquariums#update DELETE /aquariums/:id(.:format) aquariums#destroy aquarium GET /aquarium(.:format) aquariums#show 提前致谢! 格雷格 解决方法
改变最后一条路线:
get 'aquarium',:as => :aquarium 对此: get 'aquarium',:as => :current_aquarium 问题是你必须命名相同的路由: aquarium GET /aquariums/:id(.:format) aquariums#show aquarium GET /aquarium(.:format) aquariums#show 如果您进行上述更改,那么当您将这些链接发送到呼叫时,第二条路线将不匹配……现在,第二条路线正在匹配,就像路线所说的那样使用您的参数作为:格式. 如果您确实进行了此更改,则可能需要调整一些内容,如果您有意链接到’current_aquarium’. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – SQL Server CE 4 DataProvider在服务器资源管理器中不
- 关于Component Business Model和DDD关系的探究结论
- vb.net excel数据导入datagridview显示
- .net – 丢失的VB6源代码;是否可以覆盖另一个对象中的方法?
- Ajax不使用SSL在IE错误代码12019
- ruby-on-rails – 在库中包装第三方服务的最佳实践
- 省市县级联,使用ajax,并且使用ul模拟select下拉
- c# – 在WPF中使用enum作为依赖项属性
- c – 所有派生类必须实现自己的析构函数,否则报告编译错误?
- 泛型 – 在Swift中实现Set.addSequence