我有一个MyEngine
没有独立命名空间的 Rails 引擎。根据文档,我正在尝试使用多态助手生成资源链接。
引擎路线:
# config/routes.rb
...
namespace :admin do
resources :my_resource
end
...
rake app:routes
(记住,这是一个引擎)的示例输出:
admin_my_resources GET /admin/my_resources(.:format) my_engine/admin/my_resources#index
POST /admin/my_resources(.:format) my_engine/admin/my_resources#create
new_admin_my_resource GET /admin/my_resources/new(.:format) my_engine/admin/my_resources#new
edit_admin_my_resource GET /admin/my_resources/:id/edit(.:format) my_engine/admin/my_resources#edit
admin_my_resource PUT /admin/my_resources/:id(.:format) my_engine/admin/my_resources#update
DELETE /admin/my_resources/:id(.:format) my_engine/admin/my_resources#destroy
如果my_resource
是MyResource
具有 ID 的模型实例12345
,我希望:
polymorphic_url([my_engine, :admin, my_resource])
渲染:
/my_engine/admin/my_resource/12345
但是我错了。相反,我得到一个例外:
undefined method `admin_my_engine_my_resource_path'...
所以,polymorphic_url
正在尝试使用admin_my_engine_my_resource_path
它真正应该使用的东西更像my_engine.admin_my_resource_path(my_resource)
Rails 似乎添加:admin
了错误的方式......还是我做错了?