Rails - 指向错误操作的命名路线

问题描述 投票:0回答:1

在我的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

为什么它指向配置文件操作而不是索引操作。我做错了什么?

ruby-on-rails ruby rspec
1个回答
0
投票

运行时

rails routes
然后这条线

admin_profiles GET    /admin/profiles(.:format)    admin/profiles#index
^^^^^^^^^^^^^^

告诉您路线名称已更改,因为您的名称用

admin
分隔。

您现在必须使用

profiles_path
(或
new_profile_path
),而不是
admin_profiles_path
(或
new_admin_proflie_path
)。

© www.soinside.com 2019 - 2024. All rights reserved.