В моем проекте Rails я хочу установить
ActionController::Parameters.permit_all_parameters = true
так,
значение по-прежнему показывает «ложь». перезагрузить и перезапустить проект rails это не исправит.
Кто-нибудь знает, почему этот файл инициализатора не работает и как я могу заставить его работать?
Спасибо!
Эта опция загружается при загрузке контроллера действий:
https://github.com/rails/rails/blob/v6.1.7.2/actionpack/lib/action_controller/railtie.rb#L28
ActiveSupport.on_load(:action_controller, run_once: true) do
ActionController::Parameters.permit_all_parameters = options.delete(:permit_all_parameters) { false }
...
Официальный способ установки этой опции через config:
https://guides.rubyonrails.org/configuring.html#config-action-controller-permit-all-parameters
# config/initializers/permit_all_params.rb
Rails.configuration.action_controller.permit_all_parameters = true
В консоли вам нужно загрузить ActionController::Base
для выполнения on_load
хука:
https://github.com/rails/rails/blob/v6.1.7.2/actionpack/lib/action_controller/base.rb#L271
>> ActionController::Parameters.permit_all_parameters
=> false
# load action controller
>> ActionController::Base
=> ActionController::Base
>> ActionController::Parameters.permit_all_parameters
=> true
Когда вы получаете эту ошибку? Когда запускается приложение или когда вы делаете запрос? какой запрос? Как выглядит контроллер? Кстати. нет Ruby 6. Вы обновились с Rails 3 до Rails 6? Одним шагом или небольшими шагами?