#ruby-on-rails #ruby #authentication #devise #autologin
#ruby-on-rails #ruby #аутентификация #разработать #автологин
Вопрос:
Я использую devise (ruby-on-rails) для аутентификации, используя before_filter:authenticate_user! требовать входа пользователя. Теперь я хочу пропустить операцию входа в систему при использовании Rails.env:dev, пока все еще требуется аутентификация на Rails.env: prd. Интересно, смогу ли я автоматически войти в систему с определенным пользователем (например, администратором) в коде, когда проект запущен в env: dev.
class QueryController < ActionController::Base
layout "query"
before_filter :auto_login
before_filter :authenticate_user!, :except =>
[
:show,
:query
]
def auto_login
if Rails.env == 'dev'
current_user = User.find_by(login: 'admin')
end
end
Интересно, как authenticate_user реализует действие входа в систему. Я пытаюсь войти в систему с пользователем, но не удалось.
Ответ №1:
Для входа в систему вашего администратора просто сделайте что-то вроде
current_user = User.find_by(login: 'admin')
Но, вероятно, вам не следует этого делать. Всегда быть администратором в режиме разработки — плохая идея. Вы должны входить в систему под разными типами пользователей, чтобы правильно протестировать свой код.
Комментарии:
1. В моем случае мне также пришлось установить роль, поскольку я использую cancancan. Тогда эти идеи разрешали пользователя и роль по умолчанию, и для киоска в торговом зале не требовался вход в систему. Спасибо.