Ruby on rails 我可以用“吗?”;为“设计”;,加上;只有";及;“除外?”;?

Ruby on rails 我可以用“吗?”;为“设计”;,加上;只有";及;“除外?”;?,ruby-on-rails,devise,routes,Ruby On Rails,Devise,Routes,我正在建立一个Rails网站,并设置Desive routes。到目前为止,我没有遇到任何问题,一切正常。但是,由于网站分为管理和访客区,我希望用户能够从类似于/admin/users/1/edit的路径编辑其个人资料,并从/user/sign_in或user/sign_out(不带admin前缀)登录/退出 到目前为止,我可以使用前缀,也可以不使用前缀,但不能同时使用前缀和前缀 以下是我的路线文件的相关部分: devise_for :users, only: %w['session#new s

我正在建立一个Rails网站,并设置Desive routes。到目前为止,我没有遇到任何问题,一切正常。但是,由于网站分为管理和访客区,我希望用户能够从类似于
/admin/users/1/edit
的路径编辑其个人资料,并从
/user/sign_in
user/sign_out
(不带
admin
前缀)登录/退出

到目前为止,我可以使用前缀,也可以不使用前缀,但不能同时使用前缀和前缀

以下是我的路线文件的相关部分:

devise_for :users, only: %w['session#new session#destroy']
get '/admin' => 'home#admin', as: :admin

authenticate :user do
  scope '/admin' do
    resource :basics
    resources :portfolios
    resources :articles
    devise_for :users, excepted: %w['sessions#new session#destroy']
  end
end
下面是rake路由的结果:

new_user_session GET    /admin/users/sign_in(.:format)       devise/sessions#new
            user_session POST   /admin/users/sign_in(.:format)       devise/sessions#create
    destroy_user_session DELETE /admin/users/sign_out(.:format)      devise/sessions#destroy
       new_user_password GET    /admin/users/password/new(.:format)  devise/passwords#new
      edit_user_password GET    /admin/users/password/edit(.:format) devise/passwords#edit
           user_password PATCH  /admin/users/password(.:format)      devise/passwords#update
                         PUT    /admin/users/password(.:format)      devise/passwords#update
                         POST   /admin/users/password(.:format)      devise/passwords#create
cancel_user_registration GET    /admin/users/cancel(.:format)        devise/registrations#cancel
   new_user_registration GET    /admin/users/sign_up(.:format)       devise/registrations#new
  edit_user_registration GET    /admin/users/edit(.:format)          devise/registrations#edit
       user_registration PATCH  /admin/users(.:format)               devise/registrations#update
                         PUT    /admin/users(.:format)               devise/registrations#update
                         DELETE /admin/users(.:format)               devise/registrations#destroy
                         POST   /admin/users(.:format)               devise/registrations#create
你怎么能做到这一点


提前谢谢你

我相信这可能只是一个打字错误,但请尝试更改:

devise_for :users, excepted: %w[sessions#new session#destroy]
致:


另外,您不应该编写
%w['sessions#new session#destroy']
,只需编写
%w[sessions#new session#destroy]
即可(将生成一个字符串数组)
devise_for :users, except: %w[sessions#new session#destroy]