如何在rails应用程序中使用jquery自动完成

Posted

技术标签:

【中文标题】如何在rails应用程序中使用jquery自动完成【英文标题】:How to use jquery auto-complete in rails application 【发布时间】:2013-10-16 15:34:40 【问题描述】:

我正在使用 rails 4。我尝试在我的应用程序中使用自动完成功能。但是在安装 autocomplete 时,它​​会抛出错误,比如找不到生成器 autocomplete:install。

请指导我如何在我的应用程序中使用自动完成功能。

在视图中

<%= 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 在下拉列表中显示驱动程序列表。相反,它会在自动完成时显示。

如何以简单的形式使用自动完成。请分享您的想法

【问题讨论】:

【参考方案1】:

很简单:

在视图中您需要一个 text_field。

在你的 js 文件中:

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

在您的控制器中,您将获得带有 text_field 值的params[:term]

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

请不要将您的驱动程序代码放在 application_controller 中,将其放在 driver_controller 中。

【讨论】:

以上是关于如何在rails应用程序中使用jquery自动完成的主要内容,如果未能解决你的问题,请参考以下文章

使用 COCOON Rails 3 在动态字段中自动完成 Jquery

Rails 3.2.1 Jquery 自动完成

Rails jQuery 自动完成和动态嵌套字段

Rails jQuery-自动完成客户端

Rails:搜索表单中的jquery自动完成

Rails 中的动态自动完成,使用 jQuery TokenInput 插件