Ho una pagina indice che voglio mostrare il profilo di tutti gli utenti e le loro foto associate. Sto usando il plugin Paperclip per le foto. Nel controller Profili, ho la variabile di istanza @profile ma mi mostra la tabella solo nella tabella dei profili e non la tabella delle foto.Ruby on Rails: come unire due tabelle
@profile = Profile.find(:all, :include => :photos,
:joins => "INNER JOIN photos ON photos.profile_id = profiles.id")
I modelli sono riportati di seguito:
class Profile < ActiveRecord::Base
has_many :photos
end
class Photo < ActiveRecord::Base
belongs_to :profile
end
Quello che voglio essere in grado di mostrare nella vista è qualcosa di simile:
- profilo di Giovanni (ad esempio, il nome, l'età, sesso) - Foto di Giovanni (ad es., solo una foto)
- Profilo di Mary qui - Immagine di Maria mostrata qui
- Profilo di Bob qui - Immagine di Bob mostrata qui
Se un profilo ha molte foto, come si fa a determinare quale immagine mostrare per un profilo particolare? Dovrebbe essere una relazione uno-a-uno? (Ci sarebbero diversi modi per farlo nel database - Il profilo potrebbe avere una chiave esterna per profile_photo, per esempio, o potrebbe esserci una colonna booleana in Foto che indica se una determinata foto è destinata a essere "primaria") –
Sì, ho una colonna booleana chiamata primary. Se è impostato su 1, dovrebbe mostrare la foto. – Max