Forum: Rails-ES fields_for sacar valor

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.
Ja G. (Guest)
on 2009-01-22 12:05
<% fields_for_foto(foto) do |foto_form| %>
                <%= image_tag("/images/foto.png")  %>&nbsp;Foto:

                <%= foto_form.file_field :foto %>


<%  end %>

Hola, supongo que es una chorrada, pero he probado y no me ha salido.
¿Como saco la string de :foto?

Si uso <%= foto_form.text_field :foto %> me aparece la url de la foto
dentro de un input como es lógico. Pero no consigo sacar ese texto para
una variable (la idea es ponerlo en un <%= image_tag %>).

Para que lo entendais: lo que quiero hacer esque si hay foto, se vea en
un <% image_tag %> y si no haya un campo para subirla.

Gracias.
Emili P. (Guest)
on 2009-01-22 12:39
(Received via mailing list)
En el método del controlador que llama a esta vista tienes que declarar
una
variable de instancia con el contenido del foto
def tu_metodo
 @foto = Foto.find(params[:id])
....
end

en tu formulario, foto es una variable local, como no le has asignado
nada,
está vacia.

El 22 de enero de 2009 11:05, Javier G. <
removed_email_address@domain.invalid> escribió:
Ja G. (Guest)
on 2009-01-22 13:49
En realidad no esta vacía, es decir, sí hay una foto, sí que me muestra
la url de ella (este no es el problema).

El problema, no es que no me lea las fotos existentes, que sí lo hace.
Quiero que al ser un metodo de edicion, que cargue las que ya hay para
poder visualizarlas y/o que me deje editar la ruta. (ESTO LO HACE)

La idea es EDITAR una lista de fotos de este modo

SI HAY FOTO
   -visualizar foto con <%= image_tag %>    <-- PROBLEMA! :-(
SINO
   -Añadir foto con file_field
END

Se hacerlo todo (no tiene mayor dificultad), menos conseguir la url en
una string para pasarselo a <%= image_tag %>.

He probado con cosas erroneas como:
<%= image_tag(foto_form.text :foto) %>
<%= image_tag(foto_form.value :foto) %>
<%= image_tag(foto_form.text_field :foto) %>  <-- Este pone una foto con
url "<Input text[...etc...]foto_empresa.jpg</input>"
etc...

Y repito si hago <%= foto_form.text_field %> me aparece un input con la
url que tiene la foto, es decir pone /imagenes/foto_empresa1.jpg.

Gracias.
Manuel González Noriega (Guest)
on 2009-01-22 13:59
(Received via mailing list)
2009/1/22 Javier G. <removed_email_address@domain.invalid>

>
> Y repito si hago <%= foto_form.text_field %> me aparece un input con la
> url que tiene la foto, es decir pone /imagenes/foto_empresa1.jpg.
>

Si el objeto tiene un método "url" ¿no funciona <%= foto.url %>?
Fernando G. (Guest)
on 2009-01-22 19:48
(Received via mailing list)
El día 22 de enero de 2009 12:49, Javier G.
<removed_email_address@domain.invalid>
escribió:> He probado con cosas erroneas como:
> <%= image_tag(foto_form.text :foto) %>
> <%= image_tag(foto_form.value :foto) %>
> <%= image_tag(foto_form.text_field :foto) %>  <-- Este pone una foto con
> url "<Input text[...etc...]foto_empresa.jpg</input>"

Le tienes que pasar un string con la url.. y como la url está en
foto.url prueba con:
<%= image_tag( foto.url ) %>
Ja G. (Guest)
on 2009-01-22 23:17
Lo he intentado como me habeis dicho y aun no lo he conseguido. :-(

El metodo foto.url me dice que no existe el metodo.
Manuel González Noriega (Guest)
on 2009-01-22 23:28
(Received via mailing list)
2009/1/22 Javier G. <removed_email_address@domain.invalid>

> Lo he intentado como me habeis dicho y aun no lo he conseguido. :-(
>
> El metodo foto.url me dice que no existe el metodo.
>

Pero ¿sabes si ese método debería existir en el objeto Active Record?
¿Existe la columna en la base de datos?

Creo que necesitas repasar los principios más básicos de Rails y de
Active
Record, para poder comprender qué son las variables y métodos que
manejas
Ja G. (Guest)
on 2009-01-22 23:45
No hace falta que lo repase, gracias. Url no es el nombre que tiene mi
columna en la bdd, os pongo url porque sepais que es la direccion que
deberia tener guardada. ;-)

(Tras un rato..)

Ya he descubierto lo que pasaba! Era una falta ortográfica al copiar una
variable.

Lo siento por el lapsus, pero gracias a todos, sobre todo a Manuel, que
con su comentario, me ha hecho ir a la bdd a comprobar todas las
columnas y darme cuenta de mi "herror" ;-)
This topic is locked and can not be replied to.