0

我想在我的Rails應用程序中實現一個自動完成表單。Rails 4自動完成表單

到目前爲止,我已經完成了以下安裝步驟。

的Gemfile補充說:

gem 'jquery-rails' 
gem 'jquery-ui-rails' 
gem 'rails4-autocomplete' 

的application.js補充說:

//= require jquery 
//= require jquery_ujs 
//= require jquery-ui/autocomplete 
//= require autocomplete-rails 

在我的模型,我有一份工作和公司。 A Job belongs_to CompanyCompany has_many Jobs

在我的routes.rb我有:添加到頂級

resources :companies 
resources :jobs do 
    get :autocomplete_company_name, :on => :collection 
end 

喬布斯控制器:

autocomplete :company, :name 

所有作業由一個日期,然後外鍵的表,如公司,聯繫人,工作現場等工作新_form我有:

<%= form_for(@job) do |f| %> 
    <%= f.hidden_field :date, :value=>Time.now %> 
    <%= f.hidden_field :user_id, :value=>current_user.id %> 

    <%= f.fields_for :company, @company do |company| %> 
     <%= company.autocomplete_field :name, autocomplete_company_name_jobs_path %> 

我能夠呈現自動填充字段o ñ我的形式,但是當我開始打字時,什麼都沒有出現。家得寶是我測試數據庫中的虛擬公司之一,但您可以看到何時輸入「Ho」,似乎沒有任何東西顯示爲自動完成。

enter image description here

爲自動完成場我正在渲染出現像這樣的頁面源:

<input data-autocomplete="/jobs/autocomplete_company_name" type="text" name="job[company][name]" id="job_company_name" /> 

我已經在這裏找到了文檔和說明了以下幾點:https://github.com/bigtunacan/rails-jquery-autocomplete

有什麼我我錯過了?比如我不包含的一些javascript文件或者我需要在我的application.js中運行的腳本/函數?或者我的application.html中有javascript_include_tag?

我是使用jQuery和javascript的新手。

回答

0

在網上搜索了更多的例子後,我找到了答案。

首先,我略有偏離。 autocomplete :company, :name需要在我的公司控制器中,而get :autocomplete_company_name, :on => :collection需要嵌套在我的companies資源中。

我不知道爲什麼他們的Gem文檔會遺漏這個,但是爲了使寶石工作,我必須創建自己的js.erb文件並添加一個javascript函數。

app/assets/javascripts我創建company.js.erb並添加以下功能:

$(function() { 
    var companies = <%Company.all.collect{|company| company.name}%> 
    $("#jobCompany").autocomplete({ 
     source: companies 
    }); 
    }); 

這是所有失蹤,一旦我還原的服務器一切工作,因爲它應該。

注意,如果你想擁有自動完成建議被很好地格式化,然後在app/assets/stylesheets/application.scss添加*= require jquery-ui