嵌套的命名空间资源,多态关联和路径

这是rails中的错误吗? 我有以下路由:

namespace :admin do resources :products do resources :images end end 

这会创建以下路径

 admin_product_image GET /admin/products/:product_id/images/:id(.:format) admin/images#show 

但是当我试图通过路径返回时

 polymorphic_path( [ @imageable, @image ] ) 

它返回一个错误:对于#未定义的方法`admin_product_admin_image_path’

它似乎在寻找`admin_product_admin_image_path’而不是’admin_product_image_path’

如果我调试“polymorphic_routes.rb”并修改它:

 (proxy || self).send(named_route, *args) 

发送“admin_product_admin_image_path”并生成错误,而不是发送:

 (proxy || self).send("admin_product_image_path", *args) 

没有错误。 polymorphic_path不能使用命名空间吗?

编辑现在可以确认polymorphic_url函数不适用于名称空间!

编辑通过编辑坏主意 polymorphic_routes.rb我设法硬编码修复不好的想法

 In def build_named_route_call(records, inflection, options = {}) .... .... route << model_name_from_record_or_class(record).singular_route_key ..... route << model_name_from_record_or_class(record).route_key 

坏*

 route << model_name_from_record_or_class(record).singular_route_key.gsub(/admin_/,'').to_s 

 route << model_name_from_record_or_class(record).route_key.gsub(/admin_/,'').to_s 

这是rails中的一个错误。 上面我的问题中的编辑是修复需要去的地方……但是我的硬编码编辑会破坏rails中的其他内容 – 所以请避免使用它。

目前唯一的解决方案是不在rails中使用命名空间,嵌套资源和多态关联。