Evaldo Kalbermatter
2010-Sep-03  15:03 UTC
[Rails] Problema con parámetros en collection_select (No novato)
Hola a tod@s,
Les cuento... Tengo lo siguiente en aplicación:
Una página donde esta mi modelo docencia que a su vez le voy agregando
todos los dictados de carreras:
  <fieldset>
   <% f.fields_for :dictados do |dictado_form| %>
   <%= render :partial => ''dictado'', :locals => { :f
=> dictado_form }
%>
   <% end %>
   <%= add_child_link "Agregar un dictado de carrera", f, :dictados
%>
  </fieldset>
En el partial de dictado carrera tengo lo siguiente:
<%= render :partial => ''./shared/carreras'' %>
Y el partial de carrera tiene lo siguiente:
<%= collection_select(@mcarrera.to_s, "codcarrera",
Carrera.find(:all,
:order=>"nombre"), :codcarrera, :nombre,
   {:prompt   => "", :selected => @codcarrera.to_i}) %>
Esto es porque una de las cosas que quiero saber es en que carrera dió
clases el docente. Ahora, me funciona todo bien salvó que no va
correctamente el dato de codcarrera por POST.
Se preguntarán porque ''@mcarrera''... Porque en otras vistas
uso el mismo
partial y ese ''@mcarrera'' lo seteo con el nombre del modelo
para que el
datos de codcarrera vaya por el POST asociado al modelo y se guarde de
una.
En fin, lo que tendría que lograr al ver el código html es:
''docencia[dictados_attributes][?][codcarrera]'' pero no se como
hacerlo
Otro problema es que al editar como hago para que queden seleccionadas
las carreras en caso de ser más de uno el dictado?
Espero haberme expresado bien y puedan ayudarme. Seguramente a alguién
le paso pero no encontré nada por acá. Gracias!
# Perdón por duplicar el post, puse el mismo en el foro en inglés y
ahora no sé como eliminarlo... algún moderador por ahí?
-- 
Posted via http://www.ruby-forum.com/.
-- 
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
Evaldo Kalbermatter
2010-Sep-03  16:03 UTC
[Rails] Re: Problema con parámetros en collection_select (No novato)
Evaldo Kalbermatter wrote:> Hola a tod@s, > > Les cuento... Tengo lo siguiente en aplicación: > > Una página donde esta mi modelo docencia que a su vez le voy agregando > todos los dictados de carreras: > > <fieldset> > <% f.fields_for :dictados do |dictado_form| %> > <%= render :partial => ''dictado'', :locals => { :f => dictado_form } > %> > <% end %> > <%= add_child_link "Agregar un dictado de carrera", f, :dictados %> > </fieldset> > > En el partial de dictado carrera tengo lo siguiente: > > <%= render :partial => ''./shared/carreras'' %> > > Y el partial de carrera tiene lo siguiente: > > <%= collection_select(@mcarrera.to_s, "codcarrera", Carrera.find(:all, > :order=>"nombre"), :codcarrera, :nombre, > {:prompt => "", :selected => @codcarrera.to_i}) %> > > Esto es porque una de las cosas que quiero saber es en que carrera dió > clases el docente. Ahora, me funciona todo bien salvó que no va > correctamente el dato de codcarrera por POST. > > Se preguntarán porque ''@mcarrera''... Porque en otras vistas uso el mismo > partial y ese ''@mcarrera'' lo seteo con el nombre del modelo para que el > datos de codcarrera vaya por el POST asociado al modelo y se guarde de > una. > > En fin, lo que tendría que lograr al ver el código html es: > ''docencia[dictados_attributes][?][codcarrera]'' pero no se como hacerlo > > Otro problema es que al editar como hago para que queden seleccionadas > las carreras en caso de ser más de uno el dictado? > > Espero haberme expresado bien y puedan ayudarme. Seguramente a alguién > le paso pero no encontré nada por acá. Gracias! > > # Perdón por duplicar el post, puse el mismo en el foro en inglés y > ahora no sé como eliminarlo... algún moderador por ahí?Una de las cosas que se me ocurrió es setear @mcarrera con "nombre_modelo[nombre_del_modelo_nested_form]" Observando los parámetros que viajan por post (viendo los logs) llegá todo bien, pero igual no funciona. Me muestra el siguiente error (el 2 corresponde al id de carrera): undefined method `with_indifferent_access'' for "2":String Gracias! -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Evaldo Kalbermatter
2010-Sep-06  14:50 UTC
[Rails] Re: Problema con parámetros en collection_select (No novato)
Evaldo Kalbermatter wrote:> Evaldo Kalbermatter wrote: >> Hola a tod@s, >> >> Les cuento... Tengo lo siguiente en aplicación: >> >> Una página donde esta mi modelo docencia que a su vez le voy agregando >> todos los dictados de carreras: >> >> <fieldset> >> <% f.fields_for :dictados do |dictado_form| %> >> <%= render :partial => ''dictado'', :locals => { :f => dictado_form } >> %> >> <% end %> >> <%= add_child_link "Agregar un dictado de carrera", f, :dictados %> >> </fieldset> >> >> En el partial de dictado carrera tengo lo siguiente: >> >> <%= render :partial => ''./shared/carreras'' %> >> >> Y el partial de carrera tiene lo siguiente: >> >> <%= collection_select(@mcarrera.to_s, "codcarrera", Carrera.find(:all, >> :order=>"nombre"), :codcarrera, :nombre, >> {:prompt => "", :selected => @codcarrera.to_i}) %> >> >> Esto es porque una de las cosas que quiero saber es en que carrera dió >> clases el docente. Ahora, me funciona todo bien salvó que no va >> correctamente el dato de codcarrera por POST. >> >> Se preguntarán porque ''@mcarrera''... Porque en otras vistas uso el mismo >> partial y ese ''@mcarrera'' lo seteo con el nombre del modelo para que el >> datos de codcarrera vaya por el POST asociado al modelo y se guarde de >> una. >> >> En fin, lo que tendría que lograr al ver el código html es: >> ''docencia[dictados_attributes][?][codcarrera]'' pero no se como hacerlo >> >> Otro problema es que al editar como hago para que queden seleccionadas >> las carreras en caso de ser más de uno el dictado? >> >> Espero haberme expresado bien y puedan ayudarme. Seguramente a alguién >> le paso pero no encontré nada por acá. Gracias! >> >> # Perdón por duplicar el post, puse el mismo en el foro en inglés y >> ahora no sé como eliminarlo... algún moderador por ahí? > > Una de las cosas que se me ocurrió es setear @mcarrera con > "nombre_modelo[nombre_del_modelo_nested_form]" > > Observando los parámetros que viajan por post (viendo los logs) llegá > todo bien, pero igual no funciona. Me muestra el siguiente error (el 2 > corresponde al id de carrera): > > undefined method `with_indifferent_access'' for "2":String > > Gracias!Finalmente lo solucione. Era más fácil de lo que creía, jeje... Les comentaba que usaba una variable @mcarrera para setear el modelo en el collection_select. Bueno, no es necesario, se puede usar la típica variable "f" del formulario, es decir: <% form_for(@modelo) do |f| %> Y en el collection_select quedaría lo siguiente: <%= f.collection_select(:codcarrera, Carrera.find(:all, :order=>"nombre"), :codcarrera, :nombre, {:prompt => "", :selected => @codcarrera.to_i}) %> En mi caso tuve que poner el collection_select en el mismo formulario que utilizo con el nested form y no como un partial como lo tenía ya que esa variable "f" de mi modelo (el de nested forms) no me funciona. La solución esta por modificar el javascript utilizado para ir agregando dinamicamente, en este caso, los dictados. Si alguién le encuentra la vuelta a esto nos cuenta, sí? Gracias! Gracias! -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.