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