Я создаю 2 таможенных контроллера для управления регистрациями:
class RegistrationsController < Devise::RegistrationsController
protected
def update_resource(resource, params)
resource.update_without_password(params)
end
def after_sign_up_path_for(resource)
dashboard_path
end
end
и еще как в этой теме: Rails несколько путей регистрации с Devise
class QuickstartsController < Devise::RegistrationsController
# GET /quickstarts/new
def new
# This block is passed to the super class implementation:
super do |resource|
@user = resource.build_profile
end
end
# POST /quickstarts
def create
super
end
protected
def update_resource(resource, params)
resource.update_without_password(params)
end
# Signs in a user on sign up. You can overwrite this method in your own
# RegistrationsController.
def sign_up(resource_name, resource)
@profile = Profile.new(user: resource)
sign_in(resource_name, resource)
if(@profile.save)
end
end
def after_sign_up_path_for(resource)
# FORCE SIGN_IN HERE ...?
end
def sign_up_params
params.require(:user)
.permit(
:fullname, :password, :email,
profile_attributes: [:user_id, :street, :postal_code,
:title, :summary, :city])
end
end
Итак, первый способ - это нормально: после sign_up создается пользователь, и я автоматически подписываюсь (я раскомментировал эту строку в /initializers/devise.rb): config.allow_unconfirmed_access_for = 2.days
Но QuickstartsController, создайте также пользователя (все в порядке), но после входа в систему с этим пользовательским контроллером пользователь автоматически не будет входить в систему.Где моя ошибка?Я пытаюсь изменить принуждение sign_in в этот метод
def after_sign_up_path_for(resource)
# FORCE SIGN_IN HERE ...?
end
, но он не работает ...