Почему "action_mailer.perform_caching" включен в список защиты от подделки запросов в config / средах / test.rb? - PullRequest
0 голосов
/ 17 сентября 2018

Rails v5.1.6, Ruby 2.3.3

В моем недавно сгенерированном приложении на Rails я вижу следующий код в config/environments/test.rb:

# Disable request forgery protection in test environment.
config.action_controller.allow_forgery_protection = false
config.action_mailer.perform_caching = false

Кажется, что все связанные разделы кода в этом файле разделены комментариями, включая этот раздел. Для меня это означает, что две некомментированные строки кода связаны друг с другом, и обе они должны подпадать под защиту защиты от подделки запросов (как указано в комментарии).

Я понимаю, почему такая строка, как action_controller.allow_forgery_protection, подпадает под эту категорию, но мне не совсем понятно, почему action_mailer.perform_caching так и поступит. Большинство других строк кода просты (особенно с соответствующими комментариями), но ничто в этом файле не делает эту конкретную строку кода более понятной, по крайней мере для меня.

Какая связь между кэшированием электронной почты и подделкой запроса? Или я неправильно интерпретирую разграничение, т. Е. Электронные письма не связаны с подделкой запроса?

Обновление: Я подозреваю, что этот 2-й сценарий может иметь место (т. Е. Две концепции могут быть не связаны), поскольку в config/environments/production.rb эта же строка кода находится в разделе конфигурации, который не имеет отношения к запросу подделки:

# Use a real queuing backend for Active Job (and separate queues per environment)
# config.active_job.queue_adapter     = :resque
# config.active_job.queue_name_prefix = "wms_#{Rails.env}"
config.action_mailer.perform_caching = false

Однако второе мнение не сработает.

1 Ответ

0 голосов
/ 17 сентября 2018

Они не связаны.Вы можете видеть в текущий (будущий 6.0) шаблонный источник , они предназначены для гораздо более четкого разделения, с пустыми строками и теперь даже между другими и не связанными настройками между ними.

пропущенная пустая строка кажется ошибкой форматирования , появившейся во время разработки Rails 5.0 , где было добавлено perform_caching, и (поскольку формат шаблона делает его менее понятным) предыдущий пробел не был.

Сравнение сгенерированного config/environments/test.rb между 5.1.6 и 5.2.1 подтверждает, что он выглядит лучше в более новой версии (хотя эта строка выделяется как одна из единственных настроек в этом файле без соответствующего комментария).

...