在我的routes.rb 文件中,我有这条路线:
resources :profiles
在我的规格和整个应用程序中,我有这样的路径:
profiles_path
new_profile_path
等等
现在我必须将其移至名称空间内。那么新路线是:
namespace :admin do
resources :profiles
end
然后我开始使用它如下:
profiles_path
问题是,当我在规格中使用它时,出现以下错误:
ActionController::UrlGenerationError:
No route matches {:action=>"/admin/profiles", :controller=>"profiles", :dir=>"asc", :order=>"name"}
当我尝试检查此控制器的路线时,我得到了正确的路线:
admin_profiles GET /admin/profiles(.:format) admin/profiles#index
为什么它指向配置文件操作而不是索引操作。我做错了什么?
运行时
rails routes
然后这条线
admin_profiles GET /admin/profiles(.:format) admin/profiles#index
^^^^^^^^^^^^^^
告诉您路线名称已更改,因为您的名称用
admin
分隔。
您现在必须使用
profiles_path
(或 new_profile_path
),而不是 admin_profiles_path
(或 new_admin_proflie_path
)。