在模型中使用ActionView :: Helpers :: AssetUrlHelper和asset_path

时间:2014-03-02 06:02:32

标签: ruby-on-rails ruby-on-rails-4 asset-pipeline

我正在尝试制作一个MissingImage类:

class MissingImage

  include ActionView::Helpers::AssetUrlHelper

  def src format
    return asset_path('layout/missing_image.png')
  end
end

在模型中使用这样的方法:

def main_image
  images.find(&:ismain) || images.first || MissingImage.new
end

问题是 - asset_path当像这样使用时,只返回字符串而没有任何与资产管道的连接。

建议?

更新

在搞砸之后,我稍微重构了MissingImage,但它仍然没有在生产中生成签名的资产路径:

class MissingImage
  def src format
    return ActionController::Base.helpers.asset_path('layout/missing_image.png')
  end
end

返回的路径为/assets/layout/missing_image.png

1 个答案:

答案 0 :(得分:0)

为了我的目的'/assets/icons/myimage.png'足够好,但听起来你想要完全合格的路径。我想如果你试图得到一个绝对的网址,你可能会有更好的运气。

您可以在config.action_controller.asset_host上设置该选项,然后使用:

#{asset_path( “布局/ missing_image.png”)}

查看此问题的接受答案中的评论 - Rails 3.1 absolute URL to an image