CoffeeScript和erb:需要变量文件



在rails 3.1应用程序中,我的html表有3个不同的javascript文件。比方说,表1.js.coffee,表2和表3。

在我的application.js文件中,我有:

// = require table

在我的table.js.coffee.erb中,我想做一些类似的事情:

// = require <%= 'table2' %>
// or (more useful)
// = require <%= Settings.js_table %>

像这样,我将能够从外部配置文件更改表的行为。目前,它不起作用。我想知道这是否可能?

谢谢!

它不起作用。

管道中的文件是在第一次请求时根据当时的内容(以及任何已解析的erb)进行编译的。

如果您引用了管道文件中的某个内容,那么如果在其他地方发生更改,它将不会更新。

编辑以回应评论:

对不起,我本应该更清楚的。一般情况下是行不通的。

在将其与require一起使用的情况下,require语句是Sprockets特定的指令。在erb处理程序得到它之前,它由Sprockets处理

该指令需要一个参数-字符串。在这种情况下,您已经向require指令传递了3个参数:一个开始的erb标记、一个带引号的字符串和一个结束的erb标签。

这就是为什么你会得到一个3对1的论点错误。

在运行时动态包含文件的最佳(也是可能的)唯一方法是从视图层。

最新更新