我希望能够定义一个返回哈希数据的ruby方法,但我也希望它在应用程序初始化时成为application.js文件的一部分。
实际数据:这里定义了一切(在lib或配置中,我猜?)
def shared_data
{ foo: bar }
end
def some_method
shared_data # => { :foo => 'bar' }
end
在应用初始化时生成js文件(我如何生成并包含在application.js中)
var shared_data = { "foo": "bar" };
我的问题:
shared_data
方法?答案 0 :(得分:2)
如果在应用初始化后此数据未发生变化
您可以将其放在config/initializer/shared_data.rb
中并将其分配给Constant或$ global变量,这样这些数据将在整个应用范围内可用
$shared_data = { x:1, y:2 }
然后创建一个javascript文件assets/javascripts/main.js.erb
(请注意.erb ext),将其包含在application.js
中,您就可以访问此数据
var sharedData = <%= $shared_data %>
注意:的
这些数据将被编译并在生产中使用assets:precompile
变为静态