Muy buenas, hoy al llegar al trabajo me he puesto a instalar este
fantastico plugin. Supongo que muchos ya lo connocereis y para lo que no
lo conozcan el nombre es bastante descriptivo. Se encarga de
autocompletar los campos de texto con las palabras que se han ido
introduciendo consiguiendo de esta forma agilizar los formularios. Un
plugin que se debe de situar ente lso imprescindibles en rails bajo mi
punto de vista.
Comento el problema que ha aparecido tras haberlo instalado de forma
satisfactoria en otras 2 aplicaciones. Bueno antes comento un poco el
procedimiento seguido por si alguien no lo conoce, asà le sirve de
introducción:
Instalamos el plugin:
script/plugin install auto_complete
Tras la instalacion es momento de preocuparnos por la vista y el
controlador:
En la vista debemos incorporar:
<%= text_field_with_auto_complete :producto, :entidad %> para aquellos
campos de texto donde se quiera hacer uso del autocompletado. Producto
es el nombre del modelo y entidad es el campo del modelo.
Para finalizar en el controlador debemos agregar esta linea:
auto_complete_for :producto, :entidad.
PD.
No debemos olvidar incluir las respectivas rutas en routes.rb
map.auto_complete ':controller/:action',
:requirements => { :action => /auto_complete_for_\S+/
},
:conditions => { :method => :get }
Pues bien una vez finalizado todo este proceso cuando me dispongo a
probar el plugin sucede que al insertar una palabra el texto de la
vista pasa de Arial a Verdana, aunque ambas tipografias mantienen el
mismo tamaño la verdana al ser ams ancha por defecto me destroza la
maquetación. He estado mirando por los distintos css y por la
documentación del pluggin pero no he encontrado nada parecido. Alguien
se le ocrre porqué puede estar pasando algo tan raro??
Un saludo y gracias por las respuestas
on 2009-06-29 11:07
on 2009-06-29 11:52
Parece que le erro puede venir por aqui... ActionController::UnknownAction (No action responded to auto_complete_for_producto_entidad):
on 2009-06-29 13:38
Bueno, hemos estado intentando varias cosas y no hemos conseguido dar
con la solucion. Supongo qe el plugin no tendra problemas cuando
incluimos la herencia en los modelos. Es decir, no creo que me deestos
problemas al tener una heréncia del tipo:
class Hipoteca < Producto
El form_for lo realizamos dentro de la vista del producto (el modelo del
que heredarán los demas). Y la linea <%= text_field_with_auto_complete
:producto, :entidad %> esta incluida dentro del partial
productos/campos_nuevo_editar.
<% form_for(:producto, :url => ruta_producto(productos_path, @producto),
:html => { :multipart => true }) do |f| %>
<%= render :partial => 'productos/campos_nuevo_editar', :locals => {
:f => f } %>
<%- fields_for :opinion, @contenido do |form| -%>
<%= render :partial => 'opiniones/campos_nuevo_editar', :locals =>
{ :f => form, :i => 2 } %>
<%- end -%>
<%= submit_tag "Enviar comentario", {:class => "form_button"} %>
<% end %>
El error lo da por no encontrar el método, pero yo creo que esta puesto
en el sitio correcto (en el controlador mas generico el Productos
Controller). En los otros sitios que lo implemente no recuerdo si habia
este tipo de herencia, pero no creo que debiera ser un problema...aunque
visto lo visto. ya no se que decir.
on 2009-06-29 13:47
Puedes pasarnos el archivo routes.rb tienes mapeado controller/action/id o usas resources ? En caso de usar resources... ¿Has añadido manualmente las nuevas acciones? Un Saludo.
on 2009-06-29 14:01
> Puedes pasarnos el archivo routes.rb > > tienes mapeado controller/action/id o usas resources ? > > En caso de usar resources... ¿Has añadido manualmente las nuevas > acciones? > > Un Saludo. Hola Guillermo, en el archivo de rutas tengo puesto esto para los auto_complete: map.auto_complete ':controller/:action', :requirements => { :action => /auto_complete_for_\S+/ }, :conditions => { :method => :get } Lo saque de un artÃculo muy interesante: http://codeintensity.blogspot.com/2008/02/auto-complete-text-fields-in-rails-2.html
on 2009-06-29 14:06
Quizás el error pueda venir por ponerlo asà ya que
map.auto_complete ':controller/:action',
:requirements => { :action => /auto_complete_for_\S+/
},
:conditions => { :method => :get }
enrutalos metodos que empiezan por auto_complete y yo en el controlador
no tengo definidos lso métodos como:
def auto_complete_...
end
Es decir que lo tengo puesto en forma:
auto_complete_for :producto, :entidad
Voy a intentarlo como bien dices tu mediante map.resources a ver que
tal.
Saludos y gracias por el empujoncito!!
on 2009-06-29 14:27
Efectivamente el problema estaba en el fichero de rutas ;). Ahora me enfrento a otro problema, quieren que el autocomplete se alimente de una columna de una tabla especifica. Basicamente queremos autocompletar con nombres de entidades bancarias y lo que buscan es que el plugin lea unicamente de la columna entidades que tiene esta la tabla porducots (la tabla maestra de la que heredan las demas). Por lo que he visto el plugin replica los valores que se han ido introduciendo anteriormente asi que supongo que alguna modificación se deberá hacer. Si alguien ya ha taratado con esta problemática cualquier referencia será de ayuda. Un saludo y gracias!!
on 2009-06-29 17:11
Por si alguien esta interesado en wl tema el capitulo 102 de railscasts parece muy muy interesante: http://railscasts.com/episodes/102-auto-complete-association
on 2009-06-30 13:05
yo lo instalo agrego eso en el router i me dice que no esta definido el metodo Acidburg@hotmail.com agreguenme
on 2009-06-30 13:22
2009/6/30 David J,nas <ruby-forum-incoming@andreas-s.net> > yo lo instalo agrego eso en el router i me dice que no esta definido el > metodo Acidburg@hotmail.com agreguenme > (esperado ansiosamente la respuesta de Textdrive a mi ticket)
on 2009-07-01 10:09
ya he conseguido que me valla al javascript pero no consigo que me lo
aplique a
<%= text_field_with_auto_complete :cita, :pacientebusca_nombre, { :size
=> 15 }, { :url => formatted_pacientes_path(:js), :method => :get } %>
on 2009-07-01 10:32
2009/7/1 David J,nas <ruby-forum-incoming@andreas-s.net> > ya he conseguido que me valla al javascript pero no consigo que me lo > aplique a > <%= text_field_with_auto_complete :cita, :pacientebusca_nombre, { :size > => 15 }, { :url => formatted_pacientes_path(:js), :method => :get } %> > -- > David, por favor, deja de escribir esta clase de mensajes, confusos, con mala ortografÃa y peor redacción. Si quieres que alguien te preste atención escribe un nuevo mensaje con un tÃtulo adecuado, una explicación concisa y comprensible de tu problema y un par de pases por el corrector ortográfico más cercano a tu domicilio. Muchas gracias
on 2009-07-01 10:40
La ortografÃa es cada uno la que tiene el lenguaje está para comunicarse no para criticarnos, escribo como se y o puedo el problema esta en que no llamo bien al javascript por que por separado me funciona, pero al applicarlo en el textfield no realiza nada y el firebug parece que no detecta qeu hay un javascript.
on 2009-07-01 10:48
2009/7/1 David J,nas <ruby-forum-incoming@andreas-s.net> > La ortografÃa es cada uno la que tiene el lenguaje está para comunicarse > no para criticarnos, escribo como se y o puedo el problema esta en que > no llamo bien al javascript por que por separado me funciona, pero al > applicarlo en el textfield no realiza nada y el firebug parece que no > detecta qeu hay un javascript. > -- > Es muy probable que el problema sea que el motor de parseado del navegador no comparte tu laxo concepto de la ortografÃa, en este caso de la del javascript. En cualquier caso, te repito: abre un nuevo mensaje, ponle un tÃtulo descriptivo, redacta tu mensaje cuidadosamente, utiliza un corrector ortográfico si lo necesitas, detalla tu problema e incluye los fragmentos de código relevantes. De lo contrario es dificil que nadie tenga el suficiente tiempo libre para dedicarse a entenderte primero y ayudarte después.
on 2009-07-01 10:56
A ver este foro es del autocomplete .. Asi que considero que estoy
escribiendo en el lugar adecuado.
http://127.0.0.1:3000/pacientes.js el codigo que hay alli es <%=
auto_complete_result @pacientes, :nombre %> ese fichero se llama
index.js.erb i esta dentro de la carpeta pacientes.
En citas new tengo <%= text_field_with_auto_complete :cita,
:pacientebusca_nombre, { :size => 15 }, { :url =>
formatted_pacientes_path(:js), :method => :get } %>.
En citas.rb tengo
def pacientebusca_nombre
paciente.nombre if paciente
end
def pacientebusca_nombre=(nombre)
self.paciente = Paciente.find_or_create_by_nombre(nombre) unless
nombre.blank?
end
en el aplication.html.erb
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<title>Centro Médico: <%= controller.action_name %></title>
<%= stylesheet_link_tag 'scaffold' %>
<%= javascript_include_tag :defaults %>
</head>
<body>
<p style="color: green"><%= flash[:notice] %></p>
<%= yield %>
<%= link_to 'Logout', :controller => 'admin', :action => 'logout' %>
</body>
</html>
Lo que quiero es que desde new cita pueda buscar los pacientes que tengo
on 2009-07-01 12:16
Textdrive, apiádate de nosotros. 2009/7/1 David J,nas <ruby-forum-incoming@andreas-s.net>
on 2009-07-01 12:28
2009/7/1 Juanjo Bazán <jjbazan@gmail.com> > Textdrive, apiádate de nosotros. > Raul Murciano ha tenido el encantador gesto de pedirme el número de incidencia e intentar acelerar el proceso. Estamos en ello. Mientras tanto sed fuertes, niños, cogeos las manos y confiad en el Monstruo de Spaguetti volador, que nos salvará a todos. No lloréis. Hacedlo por Michael, asà como Él murió por vosotros.
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.