2013-10-09 50 views
3

我正在使用rails 4.我試圖在我的應用程序中使用自動完成功能。但是當安裝自動完成時,它會拋出錯誤,如找不到生成器自動完成:安裝。如何在rails應用程序中使用jquery自動完成

請指導我如何在我的應用程序中使用自動完成功能。

在查看

<%= simple_form_for @vehicle_driver,remote: true, html: {class: 'form-inline form-horizontal vehicle_driver' }, :validate => true do |f| %> 
<div class="control-group string optional vehicle_driver_vehicle_code"> 
    <label class="string optional control-label" for="vehicle_code">Vehicle</label> 
    <div class="controls"> 
    <%= f.select :vehicle_id, vehicle_assign_driver, {},{} %> 
    <%= link_to new_vehicle_path do %> 
     <span class='icon-plus-sign'></span><br> 
    <% end %> 

    </div> 
</div> 
<div class="control-group string optional vehicle_driver_driver_name"> 
    <label class="string optional control-label" for="driver_name">Driver</label> 
    <div class="controls"> 
    <%= f.select :driver_id, driver_list, {},{} %> 
    <%= link_to new_driver_path do %> 
     <span class='icon-plus-sign'></span><br> 
    <% end %> 

    </div> 
</div> 
    <div style="padding-left:15em"> 
<%= f.button :submit, {value:'Assign', class: 'btn btn-primary'} %> 
<span id="updated1" class="inline icon-ok hidden" style="display: none;">Assigned Successfully</span> 
</div> 
<% end %> 

在應用控制器

def driver_list 
     Driver.where(:driver_allotted => false).map{|i|[i.first_name.capitalize, i.id]} 
    end 

我使用f.select在下降顯示驅動程序列表下來。而不是它會顯示在自動完成。

如何使用簡單形式的自動完成。請分享您的想法

回答

2

這很簡單:

鑑於你需要一個text_field。

在你的js文件:

$("#driver_id").autocomplete({ source: "/controller_name?filter_key=attr_name", minLength: 0 }); 

在你的控制器,你會得到params[:term]與text_field值:

if params[:term] 
    @drivers = Driver.where(filter_key.to_sym => params[:term]).map(&filter_key.to_sym) 
end 

請不要把你的驅動程序代碼application_controller,把它放在driver_controller。

相關問題