我可以将 "devise_for" 与 "only" 和 "excepted" 一起使用吗?
Can I use "devise_for", with "only" and "excepted"?
我正在建立一个 Rails 网站,并设置设计路线。到目前为止,我没有遇到任何问题,一切正常。但是,由于该网站分为管理区和访问者区,我希望用户能够从看起来像 /admin/users/1/edit
的路径编辑他的个人资料,并从 [=16= 签名 in/out ] 或 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 routes
的结果:
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]
至:
devise_for :users, except: %w[sessions#new session#destroy]
我正在建立一个 Rails 网站,并设置设计路线。到目前为止,我没有遇到任何问题,一切正常。但是,由于该网站分为管理区和访问者区,我希望用户能够从看起来像 /admin/users/1/edit
的路径编辑他的个人资料,并从 [=16= 签名 in/out ] 或 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 routes
的结果:
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]
至:
devise_for :users, except: %w[sessions#new session#destroy]