Javascript 尝试使用rails 4设置twitter typeahead时出现错误400

Javascript 尝试使用rails 4设置twitter typeahead时出现错误400,javascript,ruby-on-rails,twitter,typeahead.js,Javascript,Ruby On Rails,Twitter,Typeahead.js,我试着完全按照这篇文章来使用我的rails应用程序。我正在使用TwitterTypeahead rails当我开始在搜索栏中键入内容时,chrome控制台中出现了400个错误请求。我正在使用Cloud9IDE。我已将代码粘贴到下面。如果我需要发布更多代码,请告诉我。我不明白为什么它不起作用 assets/javascripts/application.js //= require jquery //= require jquery.turbolinks //= require jquery_uj

我试着完全按照这篇文章来使用我的rails应用程序。我正在使用TwitterTypeahead rails当我开始在搜索栏中键入内容时,chrome控制台中出现了400个错误请求。我正在使用Cloud9IDE。我已将代码粘贴到下面。如果我需要发布更多代码,请告诉我。我不明白为什么它不起作用

assets/javascripts/application.js

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require bootstrap-sprockets
//= require bootstrap-select.min
//= require twitter/typeahead
//= require twitter/typeahead/bloodhound
//= require turbolinks
//= require fancybox
//= require_tree .
config/routes.rb

get 'typeahead/:search', to: 'badges#typeahead'
  def index
    @badges = Badge.search(params[:search])
  end

  def typeahead
    q = params[:search]
    render json: Badge.where('name LIKE ?', "%#{q}%")
  end
<div role="search">
     <%= form_tag badges_path, class: 'navbar-form', method: :get do %>
         <div class='form-group'>
             <%= text_field_tag :typeahead, params[:search], class: 'search-input form-control, placeholder: 'Search badges' %>
         </div>
         <span class="search-icon">
              <%= button_tag "<i class='fa-navbar fa fa-search' </i>".html_safe, name: nil, class: 'search-button' %>
         </span>
     <% end %>
</div>
.
.
.
<script type="text/javascript">
  $(document).ready(function(){ 
    var bloodhound = new Bloodhound({
      datumTokenizer: function (d) {
        return Bloodhound.tokenizers.whitespace(d.value);
      },
      queryTokenizer: Bloodhound.tokenizers.whitespace,

      remote: '/typeahead/%SEARCH', 
      limit: 50
    });
    bloodhound.initialize();

    $('#typeahead').typeahead(null, {
      displayKey: 'name',
      source: bloodhound.ttAdapter()
    });

    $('#typeahead').bind('typeahead:selected', function(event, datum, name) {
      doSomething(datum.id);
    });
  })  
</script>
控制器/徽章\u控制器.rb

get 'typeahead/:search', to: 'badges#typeahead'
  def index
    @badges = Badge.search(params[:search])
  end

  def typeahead
    q = params[:search]
    render json: Badge.where('name LIKE ?', "%#{q}%")
  end
<div role="search">
     <%= form_tag badges_path, class: 'navbar-form', method: :get do %>
         <div class='form-group'>
             <%= text_field_tag :typeahead, params[:search], class: 'search-input form-control, placeholder: 'Search badges' %>
         </div>
         <span class="search-icon">
              <%= button_tag "<i class='fa-navbar fa fa-search' </i>".html_safe, name: nil, class: 'search-button' %>
         </span>
     <% end %>
</div>
.
.
.
<script type="text/javascript">
  $(document).ready(function(){ 
    var bloodhound = new Bloodhound({
      datumTokenizer: function (d) {
        return Bloodhound.tokenizers.whitespace(d.value);
      },
      queryTokenizer: Bloodhound.tokenizers.whitespace,

      remote: '/typeahead/%SEARCH', 
      limit: 50
    });
    bloodhound.initialize();

    $('#typeahead').typeahead(null, {
      displayKey: 'name',
      source: bloodhound.ttAdapter()
    });

    $('#typeahead').bind('typeahead:selected', function(event, datum, name) {
      doSomething(datum.id);
    });
  })  
</script>
layouts/_header.html.erb

get 'typeahead/:search', to: 'badges#typeahead'
  def index
    @badges = Badge.search(params[:search])
  end

  def typeahead
    q = params[:search]
    render json: Badge.where('name LIKE ?', "%#{q}%")
  end
<div role="search">
     <%= form_tag badges_path, class: 'navbar-form', method: :get do %>
         <div class='form-group'>
             <%= text_field_tag :typeahead, params[:search], class: 'search-input form-control, placeholder: 'Search badges' %>
         </div>
         <span class="search-icon">
              <%= button_tag "<i class='fa-navbar fa fa-search' </i>".html_safe, name: nil, class: 'search-button' %>
         </span>
     <% end %>
</div>
.
.
.
<script type="text/javascript">
  $(document).ready(function(){ 
    var bloodhound = new Bloodhound({
      datumTokenizer: function (d) {
        return Bloodhound.tokenizers.whitespace(d.value);
      },
      queryTokenizer: Bloodhound.tokenizers.whitespace,

      remote: '/typeahead/%SEARCH', 
      limit: 50
    });
    bloodhound.initialize();

    $('#typeahead').typeahead(null, {
      displayKey: 'name',
      source: bloodhound.ttAdapter()
    });

    $('#typeahead').bind('typeahead:selected', function(event, datum, name) {
      doSomething(datum.id);
    });
  })  
</script>