Как уже упоминалось в моем комментарии, вы должны сообщить Devise, что хотите использовать пользовательский контроллер для регистрации, чтобы он знал, что не следует использовать его поведение по умолчанию.
Поскольку вы хотите ограничить публичную регистрацию пользователей, я думаю (я не проверял это), вам нужно создать свой собственный настраиваемый контроллер регистрации, который выполняет то же самое, что и устройство по умолчанию, за исключением того, что пользователь уже вошел в систему ... Я не уверен, что именно происходит после (не публичной) регистрации. Причина Devise пытается войти в систему автоматически - в зависимости от того, используете ли вы подтверждаемый или нет ... Но я думаю, что вы вышли из системы как старый пользователь и вошли как новый ...
Таким образом, чтобы дать вам указания, вы должны прочитать раздел README, касающийся Настройка контроллеров .
И тогда вы можете просто попытаться добавить before_filter для аутентификации пользователя в вашем контроллере пользовательских регистраций (при условии, что ваша пользовательская модель называется User
):
class MyRegistrationsController < Devise::RegistrationsController
before_filter :authenticate_user!
end
Но снова. Я не проверял это ... так что, может быть, это не тот способ, но стоит попробовать:)