我的.js
文件夹中有一个public/javascript
文件,我想在此文件中包含一个动态生成的值。
是否可以动态生成.js文件,例如public/javascript/my_javascript.js.erb
由于
答案 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的形式。