Integrar belongs_to_auto_completer con fields_for

Hola,

En cuanto al funcionamiento de este plugin, ok, no hay problema. Bien,
tengo la necesidad de enlazar el control generado por
belongs_to_auto_completer con el atributo producto_id, pero en el
contexto de fields_for :

#app/models/salida.rb
class Salida < ActiveRecord::Base

has_many :salida_items

def salida_item_attributes=(salida_item_attributes)
salida_item_attributes.each do |attributes|
salida_items.build(attributes)
end
end

end

#app/models/salida_item.rb
class SalidaItem < ActiveRecord::Base

belongs_to :salida
belongs_to :producto

end

#app/models/producto.rb
class Producto < ActiveRecord::Base

has_many :salida_items

end

<% fields_for “salida[salida_item_attributes][]”, item do
|salida_item_form| %>
<%= belongs_to_auto_completer :salida_item, :producto, :nombre %>
<%= salida_item_form.text_field :cant, :style => “text-align: right;”
%>
<%= link_to_function “Eliminar”,
“$(this.parentNode.parentNode).remove()” %>
<% end %>

No he logrado enlazar producto_id de igual manera cómo está enlazado el
atributo cant.
De antemano agradezco la valiosa ayuda que me puedan dar.

Saludos.

Jaime Mora R.

On Oct 15, 2007, at 7:47 PM, Jaime Mora R. wrote:

has_many :salida_items
class SalidaItem < ActiveRecord::Base

<% end %>

No he logrado enlazar producto_id de igual manera cómo está
enlazado el
atributo cant.
De antemano agradezco la valiosa ayuda que me puedan dar.

Lo mas sencillo posiblemente seria que uses el otro helper
model_auto_completer:

http://model-ac.rubyforge.org/classes/
ModelAutoCompleterHelper.html#M000002

que tiene signatura

model_auto_completer(
tf_name,
tf_value,
hf_name,
hf_value,
options={},
tag_options={},
completion_options={}
)

belongs_to_auto_completer es solo un helper de conveniencia que
delega en ese. Como ves puedes configurar ahi los nombres de los
campos y sus valores iniciales.

– fxn

Xavier N. wrote:

On Oct 15, 2007, at 7:47 PM, Jaime Mora R. wrote:

Lo mas sencillo posiblemente seria que uses el otro helper
model_auto_completer:
– fxn

Gracias Xavier. Si no es mucha molestia :), basandote en el campo que ya
tengo enlazado :

<%= salida_item_form.text_field :cant %>

Cómo quedaría con model_auto_completer, para enlazar producto_id ?

Nuevamente gracias por responder.
Saludos.

Jaime Mora R.

On Oct 15, 2007, at 8:11 PM, Jaime Mora R. wrote:

tengo enlazado :

<%= salida_item_form.text_field :cant %>

Cómo quedaría con model_auto_completer, para enlazar producto_id ?

Hay dos campos, uno de texto (con nombre tf_name) donde el usuario
autocompleta, y otro oculto (de nombre hf_name) que es gestionado por
el plugin.

El helper va solo, pone el ID del campo autocompletado como valor del
campo oculto hf_name. Lo comodo es definir hf_name de manera que
tenga la misma pinta que el resto del formulario y puedas usar mass-
assignment.

En cuanto a tf_name lo comodo es que NO siga el patron del resto. El
nombre de ese campo solo se usa normalmente para leer la cadena a
autocompletar, por lo demas en la construccion del modelo no interviene.

– fxn

Xavier N. wrote:

Hay dos campos, uno de texto (con nombre tf_name) donde el usuario
autocompleta, y otro oculto (de nombre hf_name) que es gestionado por
el plugin.

Seguí tus recomendaciones, la versión final quedó asi :

#app/views/salidas/_item.rhtml
<% fields_for “salida[salida_item_attributes][]”, item do
|salida_item_form| %>
<%= model_auto_completer “producto[nombre]”, item.nombre_producto,
“salida[salida_item_attributes][][producto_id]”,
item.producto_id %>
<%= salida_item_form.text_field :cant %>
<% end %>

Solucionado. Muchas gracias Xavier.

Saludos

Jaime Mora R.