设计:sign_up后无法重定向到当前用户编辑配置文件

时间:2019-06-16 23:18:48

标签: ruby-on-rails ruby-on-rails-6

我目前正在使用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 个答案:

答案 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'
  }