ActiveAdmin可以加载webpack捆绑的javascript吗? - Rails 5.1

ggt*_*mgg 3 javascript ruby-on-rails activeadmin webpack ruby-on-rails-5.1

我已经从rails 4.2.6升级到rails 5.1,然后开始使用webpack.
所有设置使用webpack都已完成,但我无法弄清楚如何在ActiveAdmin页面上加载javascript文件.默认情况下
加载ActiveAdmin app/assets/javascripts/active_admin.js.coffee.
有没有办法在ActiveAdmin页面上加载由webpack捆绑的javascript文件?

ale*_*exb 11

我有点迟了,但我相信最好包装方法而不是完全覆盖类.此外,猴子修补Header将导致标签在div中呈现id="header".为了呈现它们,<head />我做了以下事情:

ActiveAdmin::Views::Pages::Base.class_eval do
  alias_method :original_build_active_admin_head, :build_active_admin_head

  def build_active_admin_head(*args, &block)
    original_build_active_admin_head(*args, &block)
    within @head do render '/custom_headers' end
  end
end
Run Code Online (Sandbox Code Playgroud)

将此文件放入config/initializers(以便每次在开发模式下都不会重新加载导致无限循环)文件夹并创建一个app/views/_custom_headers.html.erb包含您需要的文件.

  • 将上面的注释阅读为“将`@head`更改为`head`”。从 v1.3.x 切换到 v1.4.3 时,我遇到了 ArgumentError 崩溃,此更改修复了该问题。 (2认同)

Pie*_*s C 4

Webpack 尚未得到正式支持。我们现在使用的方法是猴子修补 ActiveAdmin::Views::Header 以包含标签来加载 Webpack 生成的输出,例如。

class ActiveAdmin::Views::Header < Component
  def build(namespace, menu)
    ...
    render "application/custom_header_tags"
  end
end
Run Code Online (Sandbox Code Playgroud)

在我们的例子中,我们的 custom_header_tags.erb 使用React On Rails,但可以替换您喜欢的任何集成。