J'essaie de comprendre le comportement des associations, mais je fais quelque chose de mal.Rails 3 - associations - comment ça marche?
J'ai ces deux modèles:
class Album < ActiveRecord::Base
has_many :photos
end
class Photo < ActiveRecord::Base
belongs_to :album
end
Cela signifie qu'un album pourrait avoir de nombreuses photos et chaque photo appartient à un album.
Maintenant, si j'ai ce code dans la vue (en supposant que j'ai mis @album = 106
dans le contrôleur, qui est le numéro d'identification de l'album):
@album.photos.each_with_index do |pic, index|
...
end
Et je suis arrivé l'erreur: ActionView::Template::Error (undefined method 'photos' for 106:Fixnum):
Pourquoi j'obtiens ce message d'erreur? Je pensais que je dois définir l'ID variable @album
de l'album, puis la boucle va chercher les photos dans le tableau Photos
par album_id
(album_id = 106).
Ce que je fais encore mal?
En utilisant une partie pour rendre chaque photo est préférée, car cela sépare les «blocs de construction» de vos vues. render @ album.photos rendra la vue 'photos/_photo.html.erb' une fois pour chaque photo de l'album. –