首页 > 解决方案 > 如何在 Rails 6 中获取资产路径名列表?(Sprockets::Assets 不再有 to_a 方法)

问题描述

我在 Rails 5 中运行的应用程序中有以下代码:

  def application_spec_files
    Rails.application.assets.find_asset('application_spec.js').to_a.map {|e| e.pathname.to_s }
  end

这会为资产文件生成一组路径名。它看起来像这样:

["/Users/me/.rvm/gems/ruby-2.5.7/gems/jquery-rails-4.3.3/vendor/assets/javascripts/jquery.js",
 "/Users/me/.rvm/gems/ruby-2.5.7/gems/jquery-rails-4.3.3/vendor/assets/javascripts/jquery_ujs.js",
 "/Users/me/.rvm/gems/ruby-2.5.7/gems/bootstrap-sass-3.3.7/assets/javascripts/bootstrap.js",
 # etc. 
]

但是,当尝试在 Rails 6 中运行此代码时,它不再起作用。我收到此错误:

NoMethodError: undefined method 'to_a' for #<Sprockets::Asset...

有没有办法可以在 Rails 6 中生成路径名列表?

标签: ruby-on-railsasset-pipelineruby-on-rails-6

解决方案


推荐阅读