如何使用jQuery自动完成在轨应用 [英] How to use jquery auto-complete in rails application

查看:85
本文介绍了如何使用jQuery自动完成在轨应用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的铁轨我尽量在我的应用程序中使用自动完成。但是,安装自动完成时,会抛出错误,如找不到发电机自动完成:安装

I am using rails 4. I have tried to use auto-complete in my application. But when installing autocomplete , it throws error like could not find generator autocomplete:install.

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

Please guide me how to use autocomplete in my application.

在View

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

I am using f.select for displaying driver list in drop down. Instead of that it will show on auto-complete.

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

How to use auto-complete in simple form . Please Share your ideas

推荐答案

这是非常简单的:

在视图中,您需要一个text_field。

In view you need a text_field.

在您的js文件:

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

在你的控制器,你会得到 PARAMS [:长期] 通过text_field值:

In your controller you will get params[:term] with the text_field value:

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

请不要把你的司机code在application_controller,把它放在driver_controller。

Please DO NOT put your drivers code in application_controller, put it in driver_controller.

这篇关于如何使用jQuery自动完成在轨应用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆