0

首先的引导时,我的Gemfile无法访问引导方法包括通过的application.js

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" 

两种方式工作。

任何人都可以解释我为什么吗?也许资产管道的uglifier是命名空间引导函数?如何解决它?

回答

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 . 
+0

完成,但问题依然存在。我无法从浏览器的JavaScript控制台调用我的代码中的引导程序方法。我会在你的建议后用我的gemfile和新清单更新我的问题。 –

+0

我正在使用你刚才推荐的那个。 https://github.com/anjlab/bootstrap-rails –

0

我刚刚解决了这个问题。

似乎这种行为发生在Bootstrap被加载两次时(不知道为什么)。 我不能说为什么会发生这种情况,也许是因为我尝试了几个Bootstrap宝石,但是在生产环境中生成的/ public中的自动编译资源出现问题。

我运行rake资产:清除(任务由github.com/anjlab/bootstrap-rails提供)y再次正常工作。