在Rails视图中使用Asset Pipeline

时间:2014-07-07 06:35:10

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

我有一个Coffeescript视图,类似widget.js.coffee,需要包含jQuery,因为我无法确定jQuery是否可用。这个想法是供其他人使用JS文件,例如

<script src="http://my.rails.app/40/widget.js"></script>

我的应用程序已经通过资产管道获得了jQuery,所以我想做相当于application.coffee的清单,我可以简单地说:

#= require jquery

到目前为止,看起来我可以通过这样输出jQuery:

<%= Rails.application.assets["jquery"].source %>

但这似乎打破了Coffeescript代码(看起来jQuery源代码中有反引号)。

我不确定最好的方法。有关最佳方法的任何想法吗?

1 个答案:

答案 0 :(得分:0)

  1. 在资产管道中创建一个包含所需库的.coffee文件。我们称之为&#34; widget.js.coffee&#34;它存在于assets / javascripts
  2. 在您的控制器中,像这样拉动生成的源:

    code = Rails.application.assets['widget'].source

  3. 压缩它

    @js_libraries = Uglifier.compile code

  4. 在您的视图中使用它。如果您的视图是coffeescrtipt,请确保它包含在反引号中

    <%= raw @js_libraries %>