Rails:在运行时生成.js文件

时间:2010-04-05 19:36:28

标签: javascript ruby-on-rails

我的.js文件夹中有一个public/javascript文件,我想在此文件中包含一个动态生成的值。

是否可以动态生成.js文件,例如public/javascript/my_javascript.js.erb

由于

3 个答案:

答案 0 :(得分:7)

不,不在/ public。但是,如果您愿意,可以从标准的Rails操作生成js文件。我不建议这样做,因为将后端与javascript代码混合是创建不可维护且令人困惑的应用程序的最快方法之一。

更好的解决方案可能是在布局中呈现脚本标记(在js包含之上)以动态设置js变量。然后在js中的任何地方使用MY_VAR。

<% javascript_tag do -%>
var MY_VAR = '<%= value_of_my_var || "defaultVal" %>';
<% end -%>

答案 1 :(得分:4)

如此railscast中详述的javascript控制器如何:

http://railscasts.com/episodes/88-dynamic-select-menus

现在,如果您只想在运行时实例化此动态值,则可以将其缓存或存储在实例变量中,具体取决于数据的来源。

只要页面加载完成,您就可以通过将rails变量存储在动态文件的js变量中来保留现有的javascript。

答案 2 :(得分:2)

是的,不要这样做,你最好保持代码静态并使用rails生成数据,比如JSON的形式。