Coffescript在所有页面上执行

时间:2016-06-27 06:19:15

标签: ruby-on-rails ruby-on-rails-4 coffeescript

我的coffeescript“students.coffee”中有一个功能:

sqlite3 database.db -cmd ".mode tab" -cmd ".import data.in Test" -cmd ".quit"

问题是所有页面加载都会加载。有什么办法可以限制此函数只在特定控制器的特定操作的视图上运行吗?

或者我是否可以从特定视图中明确调用此方法?

2 个答案:

答案 0 :(得分:2)

首先,我强烈建议您阅读Asset Pipeline documentation以更好地理解它。

默认情况下,在application.js中有一个指令require_tree,它将加载application.js文件的同一文件夹和子文件夹中的所有js文件。

这意味着,Rails生成器自动创建的所有控制器的JS将被添加到压缩的application.js文件中,然后在每个页面上执行,因为在您的顶部声明了application.js布局(application.html.erb)。

如果您需要特定控制器的资产,请查看Asse Pipeline文档的this part

答案 1 :(得分:0)

首先从git reset HEAD清单文件中删除students。我假设你没有application.js。或者那会加载一切。

在您要加载此文件的特定视图中,您可以这样写

//= require_tree .