まず、私の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"
両方の方法が機能します。
誰かが私に理由を説明できますか? アセット パイプラインの醜悪さは、名前空間のブートストラップ関数ではないでしょうか? どのように修正しますか?