Звездочки Rails 3.0 find_asset

Раньше я использовал rails-sprockets 2.x и использовал следующее в шаблоне макета электронной почты, чтобы включить css

Rails.application.assets.find_asset('file').to_s.html_safe

Однако это больше не работает в rails-sprockets 3.x, и предлагается использовать

Rails.application.assets_manifest.assets['file.css']

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


person Carl Markham    schedule 02.02.2016    source источник


Ответы (1)


Я тоже только что столкнулся с этой проблемой, хотя я обновился до sprockets 3.x около 7 месяцев.

Я собрал это вместе так быстро, как только мог (вероятно, там есть лучшее решение...) - это даст вам путь - просто используйте File.read()

def find_asset_path(asset_name)
  if Rails.application.assets
    Rails.application.assets.find_asset(asset_name).pathname
  else
    name = Rails.application.assets_manifest.assets[asset_name]
    File.join(Rails.public_path, 'assets', name)
  end
end
person firien    schedule 02.02.2016