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再次正常工作。