Разработать: Невозможно перенаправить на текущий пользовательский профиль редактирования после sign_up - PullRequest
1 голос
/ 17 июня 2019

В настоящее время я работаю с 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

Как этого добиться?

1 Ответ

2 голосов
/ 17 июня 2019

Я удалил 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'
  }
...