Rails javascript_include_tag标签在液体中

时间:2014-09-06 08:38:29

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

我试图让javascript_include_tag("jquery")在rails内的Liquid标签中工作。我的问题是javascript_include_tag("jquery")返回<script src="/javascript/jquery.js"></script>。而不是:<script src="/assets/jquery_ujs.js"></script>。同样在生产中,标签不会添加文件指纹。

  class JqueryTag < ::Liquid::Tag
    # Include the stylesheet tag link helper
    include ActionView::Helpers::AssetTagHelper


    def render(context)
      return javascript_include_tag("jquery")
    end

  end

  Liquid::Template.register_tag('jquery_tag', JqueryTag)

1 个答案:

答案 0 :(得分:2)

最终找到答案。

包括include ActionView::Helpers::AssetTagHelper还不够。

相反,我需要这样做。

  class JqueryTag < ::Liquid::Tag

    def render(context)
      helpers.javascript_include_tag("jquery")
    end

    def helpers
      @helpers ||= ActionController::Base.helpers
    end

  end

  Liquid::Template.register_tag('jquery_tag', JqueryTag)