Forum: Rails-ES Como se que valor se selecciona

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
5949a15141ba15ffd1dc2f515752511d?d=identicon&s=25 Jose Roberto (Guest)
on 2007-02-17 14:52
Buenas...
Tengo un problema cuando estoy guardando el valor que estoy
seleccionando de un combo list. Cuando estoy haciendo la inclusion en la
tabla el valor que selecciono del combo se guarda como 0, es decir, como
si no se fuese seleccionado ningun elemento.En que variable se guarda
para usarla en el controlador. Mi codigo es asi...

En la Vista

<p>Lista de Ingredientes: <select name="id_ingrediente[id_ingrediente]"
id="id_ingrediente" value="<%=@id_ingrediente%>">  <br/>
  <% @incidencias.each do |ingrediente|%>
    <option value="<%= ingrediente.id_ingrediente %>"
      <%=  ingrediente.id_ingrediente %>
      <%=  ingrediente.descripcion %>>

      <%= ingrediente.id_ingrediente %>
      <%= ingrediente.descripcion %>
    </option>
<% end %>
</select></p>
en el controlador tengo:::


 def validar

    @id_comida = params[:tid_comida].to_s
    @descripcion = params[:tdescripcion].to_s
    @cantidad = params[:tcantidad].to_s
    @id_ingrediente = params[:id_ingrediente].to_s
    if @tipo== "agregar"
    begin
      objeto2 = Detalle_comida.new
      objeto2.id_comida = @id_comida
      objeto2.id_ingrediente = @id_ingrediente
      objeto2.cantidad_ingrediente = @cantidad
      objeto2.save
      @incidencias = Ingrediente.find(:all)
      render :template => "layouts/comidas"En el Controlador:
end

end
E91518f050cb6081186ff461950099e0?d=identicon&s=25 Luis Villegas (Guest)
on 2007-02-19 11:15
(Received via mailing list)
Estás pasando mal los datos.

Puedes hacer esto:
-pones el name del select como id_ingrediente, o más lógico y suponiendo
que
id_ingrediente sea una clave foránea de comida: comida[id_ingrediente] y
en
el controlador pones   @id_ingrediente = params[:id_ingrediente].to_s en
el
primer caso y en el segundo   @id_ingrediente =
params[:comida][:id_ingrediente].to_s.

-o si no quieres tocar tu vista, en el controlador pones :
@id_ingrediente
= params[:id_ingrediente][:id_ingrediente].to_s, aunque esto es muy poco
lógico.

Aún así, sería mejor que te acostumbrases a las convenciones de ruby on
rails y poner las claves foráneas con el nombre de la tabla en singular
seguido por _id, así: ingrediente_id

Espero haberte ayudado
This topic is locked and can not be replied to.