Помощник не включен при использовании ApplicationController.render () - PullRequest
1 голос
/ 25 сентября 2019

У меня Rails настроен так, чтобы по умолчанию не включать все помощники во все представления:

config.action_controller.include_all_helpers = false

После получения HTTP-запроса от внешнего источника мне нужно обновить одно представление с помощью WebSockets, используя ApplicationController.render:

def update_ui
  stream_id = "operations_#{@operation.user.id}"
  ActionCable.server.broadcast(stream_id,
                               operation: render_operation(@operation))
end

def render_operation(operation)
  ApplicationController.render('app_builder/services/download_page', assigns: { operation: operation })
end

При отображении представления происходит сбой из-за отсутствия методов помощника:

# Rendered app_builder/services/download_page.html.erb within layouts/application (87.6ms)
# <Thread:0x00007fc869307120@/app/app/controllers/files_controller.rb:17 run> terminated with exception (report_on_exception is true):
# /app/app/views/app_builder/services/download_page.html.erb:3:in `block in _app_views_app_builder_services_download_page_html_erb___4537878515684940940_70249328594880': undefined method `show_file_status' for #<#<Class:0x00007fc864913960>:0x00007fc8648f7710> (ActionView::Template::Error)

Как можно решить эту проблему, не изменяя конфигурацию, чтобы включить всепомощники по умолчанию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...