在Rails Asset Pipeline中创建通用的javascript函数

时间:2018-10-09 03:36:17

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

我有一个具有以下javascript资产结构的Rails应用

|- app
  |- assets
    |- javascripts
      |- articles
        - index.js
        - show.js
      - application.js

application.js文件似乎是所有文件的清单

//= require jquery
//= require jquery_ujs
//= require react
//= require react_ujs
//= require_tree .

假设我有一些通用的功能foo(),希望可以从index.jsshow.js进行全局访问

function foo() {
  // do cool stuff here
}

我该如何创建具有此类通用/共享功能的通用JS文件?具体来说,应该在哪里创建文件以及如何将其合并到清单中?以及在编译生产中的资产时如何对其进行编译?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以制作一个名为common.js的新文件,并在清单文件中的index.jsshow.js之前要求它

app / assets / javascripts / common.js

function foo() {
  // do cool stuff here
}

app / assets / javascripts / application.js

//= require jquery
//= require jquery_ujs
//= require react
//= require react_ujs
//= require common
//= require_tree .

资产预编译的顺序将遵循清单文件的顺序。