0

首先,我的gemfile

gem 'mysql2'
gem 'json'
gem 'jquery-rails'
gem 'dynamic_form'
gem 'haml-rails'
gem 'geocoder'
gem 'delayed_job_active_record'
gem 'daemons'
gem 'pry'
gem 'debugger'
gem 'unicorn'
gem 'rest-client'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'anjlab-bootstrap-rails', '>= 2.1', :require => 'bootstrap-rails'
  gem 'therubyracer', :platforms => :ruby
  gem 'uglifier', '>= 1.0.3'
end

当我的 application.js 中有这个清单时

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .

如果我声明一个具有适当属性的输入,像这样

<input autocomplete="off" data-provide="typeahead" data-source="['Alicante','Albacete']" size="30" type="text">

它像魔术一样工作,但我不能在我自己的 js 中做到这一点

$('#my_input').typeahead() 
// => TypeError: Object [object Object] has no method 'typeahead'

但是,如果我从清单中删除引导程序并将其明确包含在我的布局中

= javascript_include_tag "application", "bootstrap.min"

两种方式都有效。

谁能解释我为什么?也许资产管道的丑陋者是命名空间引导函数?怎么修?

4

2 回答 2

0

利用//= require twitter/bootstrap

https://github.com/anjlab/bootstrap-rails

编辑:

你用的是哪个宝石?twitter-bootstrap-rails、bootstrap-rails 还是别的什么?

如果使用 twitter-bootstrap-rails 那么你是否已经打电话rails generate bootstrap:install进行设置?

更改顺序会有所不同吗?像这样试试

//= require jquery_ujs
//= require jquery
//= require twitter/bootstrap
//= require_tree .
于 2012-09-12T17:01:38.470 回答
0

我刚刚解决了这个问题。

似乎在两次加载 Bootstrap 时会发生这种行为(不知道为什么)。我不能说为什么会发生这种情况,可能是因为我尝试了一些 Bootstrap 的 gem,但是在生产环境中生成的 /public 中的自动编译资产存在问题。

我运行 rake assets:clear (由 github.com/anjlab/bootstrap-rails 提供的任务),一切正常。

于 2012-09-14T11:01:41.957 回答