В геме Devise, при создании нового пользователя у нас есть следующий метод:
(в контроллере регистрации)
# POST /resource
def create
build_resource(sign_up_params)
resource.seller = true if params.key? "hidden_tag"
if something_happens
redirect_to root_path && return
end
resource.save if false
yield resource if block_given?
if resource.persisted?
if resource.active_for_authentication?
set_flash_message! :notice, :signed_up
sign_up(resource_name, resource)
respond_with resource, location: after_sign_up_path_for(resource)
else
set_flash_message! :notice, :"signed_up_but_#{resource.inactive_message}"
expire_data_after_sign_in!
respond_with resource, location: after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords resource
set_minimum_password_length
respond_with resource
end
end
Я бы хотел избежать регистрации в случае, еслиусловие верно, но мне не удалось его достичь.
Я пробовал много вещей, таких как redirect_to
, respond_with
, но безуспешно.Redirect_to говорит мне, что я не могу иметь несколько рендеров.Затем мне пришла в голову идея redirect_to && return
, которая позволяет не регистрироваться, но загружает странный файл.
Кто-нибудь знает, как остановить Devise при регистрации пользователя?