我目前正在使用Rails 6和Devise进行身份验证。成功注册后,我想重定向用户以编辑表单。但是,在用户注册后,其重定向到了根路径。
我创建了registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
protected
def after_sign_up_path_for(resource)
redirect_to edit_user_path
end
end
这也是我要重定向的路线。
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
在这里,我也很困惑如何确保当前用户,或者重定向是否会指向当前用户?我猜我将不得不做redirect_to '/users/#{current_user.id}/edit'
这是我的路线:
Rails.application.routes.draw do
devise_for :users, controllers: {
sessions: 'users/sessions'
}
devise_scope :users do
get 'sign_out', to: 'devise/sessions#destroy'
end
root to: 'home#index'
resources :users, only: [:show, :edit, :update, :destroy]
resources :posts do
resource :comments, only: %i[show new create edit update]
end
end
如何实现?
答案 0 :(得分:2)
我删除了redirect_to
,因为该方法可以解决这个问题。
class RegistrationsController < Devise::RegistrationsController
protected
def after_sign_up_path_for(resource)
edit_user_path(@user)
end
end
routes.rb
devise_for :users, controllers: {
sessions: 'users/sessions',
registrations: 'registrations'
}