【发布时间】:2013-05-11 13:26:02
【问题描述】:
我们正在开发具有多个 rails engines 的 rails 3.2.12 应用程序。 main app 中有导航栏和用户菜单。功能模块位于 rails engine。其中engine 之一称为customerx,它使用户能够管理客户信息,例如创建客户、更改客户信息等。
上周我们在 rails_main 应用程序中添加了bootstrap,以利用良好的引导格式。我们发现的问题是 jquery datepicker 和 html 插入功能在 Rails 引擎中停止工作。
这里是main app's application.js:
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_tree .
//= require bootstrap
application.js 中有需要引导。
我们没有在 rails 引擎的 application.js 中加入 require bootstrap。这是引擎的application.js:
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_tree .
function add_fields(link, association, content) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g")
$(link).parent().before(content.replace(regexp, new_id));
}
点击new customer form上的add_more_contact链接时,firebug出现错误:
ReferenceError: add_fields is not defined
在主应用程序中添加引导程序后,engines 也不再工作。
我们在网上做了一些搜索。 bootstrap 需要 jquery 才能工作。但是jquery-ui 和bootstrap 之间可能存在冲突。我们按照建议将require bootstrp 放在main app's application.js 的底部。我们还尝试在main app's application.js 中使用$.noConflict()。然而,这些还不足以让bootstrap 和jquery 一起工作。我们还需要做什么才能使rails engine 中的jquery(ui) 与bootstrap 一起工作?感谢您的帮助。
【问题讨论】:
标签: ruby-on-rails-3 twitter-bootstrap jquery