【发布时间】:2013-05-12 16:00:59
【问题描述】:
在 rails 3 中,要将管道中的资产用作 carrierwave 上传器中的 default_url,您执行了以下操作:
class MyUploader
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
include Sprockets::Helpers::RailsHelper
include Sprockets::Helpers::IsolatedHelper
def default_url
# For Rails 3.1+ asset pipeline compatibility:
asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
end
end
在rails 4中,管道已经被抽象成sprockets-rails gem/railtie,所以上面会给你:
未初始化的常量 Sprockets::Helpers
查看 sprockets-rails gem,替换助手似乎是 Sprockets::Rails::Helper。但包含此模块后,asset_path("fallback/default.png") 会简单地返回:
# wrong:
"/fallback/default.png"
不是我期望的资产和摘要感知 URL:
"/assets/fallback/default-b3beee1588afe2ae582c64888cd007db.png"
如何在视图之外获得正确的 asset_path 行为?
【问题讨论】:
标签: asset-pipeline ruby-on-rails-4 carrierwave helper