Взгляните на devise , это, безусловно, ваш лучший выбор для уровня аутентификации Ruby on Rails 3.
Лучше всего, если вы просто захотите добавить немного функциональности к существующему классу модели, добавив метод в следующем виде:
def validate_pin(pin_to_check)
self.pin == pin_to_check
end
А затем вам просто нужно изменить контроллер сотрудника, чтобы метод show
проверял, был ли предоставлен вывод (в идеале через переменную сеанса), в противном случае перенаправьте и запросите вывод с помощью дополнительного метода и маршрута Employee#request_pin
в контроллере, который просит пользователя ввести пин-код, при успешном перенаправлении на маршрут Employee#show
.
Обработка сеанса в контроллере
Чтобы записать переменную сеанса, вам понадобится метод Employee#check_pin
(как маршрут POST), и вы просто будете использовать код:
session[:pin_valid] = true
Тогда вы проверите session[:pin_valid]
в вашем Employee#show
методе