Cargar y filtrar user_id

Acabo de empezar con Rails, y en este foro tambien, y a la primera ya
tengo una duda que explico.

Tengo dos tablas, una de users con id, name, address, etc. y otra para
guardar fotos de cada usuario llamada photos con id, user_id y photo.

En el modelo de user he puesto has_many :photos y en de photo
belongs_to :user. En el listado de users he añadido un enlace que
presenta el formulario para gestionar las fotos de ese usuario.

tengo dos dudas, la primera, ¿como hago para que en el formulario de
photos solo salgan las que corresponden al usuario? y la segunda, al
añadir una foto en la tabla photos ¿como lleno el campo user_id ya que
no puede quedar a NULL?

Gracias

tengo dos dudas, la primera, �como hago para que en el formulario de
photos solo salgan las que corresponden al usuario?

Para ver las fotos de un usuario lo lógico es pasarle a la acción el id
del usuario en cuestión y así en el find de Photo pasarselo como
:conditions => “user_id = #{id_usuario}”

y la segunda, al a�adir una foto en la tabla photos �como lleno el campo user_id > ya que no puede quedar a NULL?

Para asignar un modelo a otro tienes que hacer algo así:

@objeto_photo = Photo.create(params[:photo]) # o el objeto si ya lo
habías creado antes
@user = User.find(id_usuario)
@user.photos << @objeto_photo
@user.save

De todos modos creo que deberías leerte un poco como funcionan las
relaciones entre modelos…, el libro de Agile Development with Rails
está muy bien. Si no lo tienes y quieres echar un vistazo rápido a la
documentación online usa esta url :

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

On 6/29/07, Jose Francisco G. [email protected] wrote:

tengo dos dudas, la primera, ¿como hago para que en el formulario de
photos solo salgan las que corresponden al usuario?

Así:
@usuario = Usuario.find( id_del_usuario)
fotos = @usuario.photos

y la segunda, al

añadir una foto en la tabla photos ¿como lleno el campo user_id ya que
no puede quedar a NULL?

Pues según como lo tienes, es una relación 1:n, por lo que un usuario
puede
tener varias fotos, pero por ejemplo el usuario 1 no puede tener fotos
que
tenga el usuario 2.
Pues lo suyo sería que al hacer un formulario para guardar las fotos,
pusieses un combo con todos los usuarios. algo así:

Foto
<%= password_field :photo, :photo%>

Usuario
<%= select(:photo, :user_id , User.find(:all).collect {|u| [ u.name u.id] }, { :include_blank => false })%>

Gracias

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs