Я определил файл YAML следующим образом throttling_request.yml
logged_in_user:
watching_timespan: 60
allowed_requests: 60
blocking_timespan: 300
non_logged_in_user:
watching_timespan: 300
allowed_requests: 300
Я загружаю файл YML в config/intializers/throttle_config.rb
config = YAML.load_file('config/throttling_request.yml').with_indifferent_access
THROTTLE_REQ_NON_LOGGED_IN = config[:non_logged_in_user]
THROTTLE_REQ_LOGGED_IN = config[:logged_in_user]
Но я хочу получить доступ к этой константе THROTTLE_REQ_NON_LOGGED_IN
в другой файл инициализатора config/initializers/rack_attack.rb
configs = ::THROTTLE_REQ_NON_LOGGED_IN
# Throttle all requests by IP (20rpm)
#
# Key: "rack::attack:#{Time.now.to_i/:period}:req/ip:#{req.ip}"
throttle('req/ip', limit: configs[:allowed_requests], period: configs[:watching_timespan]) do |req|
req.ip unless req.path.start_with?('/assets')
end
Я не смог загрузить с или без оператора разрешения области действия ::
для константы THROTTLE_REQ_NON_LOGGED_IN
.Я хочу использовать константы THROTTLE_REQ_LOGGED_IN
для моего другого класса и THROTTLE_REQ_NON_LOGGED_IN
в конфигурации для установки в стойку.Поэтому я не хочу путать вызов этой константы в файле инициализатора атаки в стойку.
Пожалуйста, дайте мне знать, нужна ли мне какая-либо другая информация.