在 rails 3 中,要将管道中的资产用作default_url
carrierwave的上传器,您执行了以下操作:
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
在视图之外获得正确的行为?