Добавить before_action
в ApplicationController
, который проверяет, если проверка уже имело место (т.е. если она хранится в куки, а затем проверить куки и т.д.):
class ApplicationController
before_action :check_age
def check_age
# check if the user has already confirmed their age.
end
...
end
Если он не найдет это, а затем перенаправить пользователя на действие контроллера, которое отображает страницу с формой возрастной проверки (то есть AgeVerificationController#new
)
После отправки установите cookie (или все, что вы делаете, чтобы сохранить эти данные) на страницу, которую они собирались посетить (или отпустить их с сайта, если они говорят, что они несовершеннолетние!)
Вам нужно будет включать в себя skip_before_action
на контроллере, который вы используете для обработки визуализации и представления формы, т.е.
class AgeVerificationController < ApplicationController
skip_before_action :check_age
...
end`
Использование before_action
иногда немного анти-паттерна, если вы начнете использовать это сделать много сложного материала, но в этом случае это довольно простой способ сделать то, что вы хотите сделать.