我想将Google Analytics嵌入式API中的JS添加到我的rails应用程序中,仅用于Rails管理员(其他任何地方都不需要)。
我们已经覆盖了Rails Admin Dashboard,现在我们正在努力使用自定义JS。
我在此处找到了https://groups.google.com/forum/#!topic/rails_admin/KgUl3gF5kTg,它需要放在app/assets/javascripts/rails_admin/custom/ui.js
。
所以我把所有.js文件和.js.map文件放在目录中:
.
└── custom
├── active-users.js
├── chart.js
├── datepicker.js
├── moment.js
├── platform.js
├── platform.js.map
├── polymer.js
├── polymer.js.map
├── promise.js
├── ui.js
└── viewpicker.js
我在//= require_tree .
文件中添加了ui.js
但在rails_admin中仍然收到了:{/ p>
Uncaught ReferenceError: Polymer is not defined
这表示未加载.JS文件。
感谢此链接查找上述链接:Rails Admin: add javascript library to custom action
编辑1:在Rails 3环境中使用Rails Admin。
编辑2:
因此,出于测试原因,我删除了所有自定义JS / HTML等。
我在ui.js中设置了这个:
//=require_tree .
我在leecher.js中设置了这个:
$(document).ready(function() { document.MY_SIMPLE_VARIABLE = 2; } );
当我重新启动服务器时,我转到rails admin,注销,重新启动服务器,登录。转到chrome中的控制台并输入:
document.MY_SIMPLE_VARIABLE
我收到以下内容:
出于测试原因,我添加了:
alert("hello world");
但仍然没有触发器。
ui.js和leecher.js的位置是:
应用/资产/ Javascript角/ rails_admin /自定义/
这是我目前的Gemfile:
http://pastie.org/private/zrrzjpbx5jq7enpeknsa
编辑3: 如果我将JS代码放入ui.js,它会显示警告!所以它们是包含问题(// =需要树。)
编辑4: 我正在使用的所有JS文件:https://gist.github.com/YOUConsulting/243397c31ea28d217367
不的简单示例: https://gist.github.com/YOUConsulting/571e785d6b6c1ed06d6b
执行的简单示例: https://gist.github.com/YOUConsulting/52de78aa043239aae707
答案 0 :(得分:12)
我已经重写了我的答案来描述完整的解决方案,以防其他人将来需要这个解决方案。
app / assets / javascripts / rails_admin / custom / ui.js 的工作方式类似于Rails资产管道中的清单文件,因此它支持these directives。
要在自定义下包含所有.js文件,请添加
//= require_tree .
位于文件顶部。 如果这不能立即使用,请运行
rake tmp:clear
将解决问题;)
干杯!
答案 1 :(得分:1)
在此topic上与Cec谈了更多。他发现一个简单的 rake tmp:clear ,是正确答案。见上面或下面的答案。