wrapbootstrap template smartadmin smart inspinia color bootstrap app jquery ruby-on-rails autocomplete

template - Cómo usar la aplicación jquery autocompletar en raíles



smartadmin template (1)

Estoy usando raíles 4. He intentado usar autocompletar en mi aplicación. Pero al instalar autocompletar, arroja un error como no se pudo encontrar la autocompleta del generador: instalar.

Por favor, guíame sobre cómo usar la función de autocompletar en mi aplicación.

En vista

<%= 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 %>

En el controlador de aplicaciones

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

Estoy usando f.select para mostrar la lista de controladores en menú desplegable. En lugar de eso, se mostrará en autocompletar.

Cómo usar el autocompletado en forma simple. Por favor comparta sus ideas


Es muy sencillo:

A la vista necesitas un text_field.

En tu archivo js:

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

En su controlador, obtendrá params[:term] con el valor text_field:

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

NO coloque el código de su controlador en el application_controller, póngalo en el driver_controller.