Как автоматически войти в rails-on-ruby

#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. Тогда эти идеи разрешали пользователя и роль по умолчанию, и для киоска в торговом зале не требовался вход в систему. Спасибо.