Je suis nouveau sur les rails, et je ne savais pas comment définir le suivi.Rails: Comment déclarer une association un-à-un facultative entre deux modèles
J'ai des modèles Utilisateurs, Invitations et Photos. Chaque utilisateur invite mes autres utilisateurs à afficher une image particulière. L'utilisateur envoie une invitation à l'autre utilisateur; l'invitation peut être liée à une image particulière ou ne peut être liée à une image particulière.
Mon problème était que je n'étais pas sûr de savoir comment associer une relation optionnelle entre l'invitation et l'image.
J'ai:
class Invitation < ActiveRecord::Base
has_one :picture
end
class Picture < ActiveRecord::Base
belongs_to :invitation
end
Cependant, lorsque je tente invitation.picture, je reçois l'erreur suivante:
Failure/Error: @user.getsInvited invitation
ActiveRecord::StatementInvalid:
SQLite3::SQLException: no such column: picture.invitation_id: SELECT "picture".* FROM "picture" WHERE "picture"."invitation_id" = 1 LIMIT 1
Probablement je besoin d'ajouter l'invitation de la colonne au modèle d'image, mais , est-ce nécessaire? envoyer une photo peut être facultatif dans l'invitation. De plus, si j'avais une seule colonne invitation_id dans l'image, que se passe-t-il si la même image est partagée entre plusieurs invitations?
I.e. chaque invitation peut être associée à une seule image et d'autres invitations peuvent être associées à la même image. Je ne voulais pas que l'image soit "consciente" des invitations, mais peut-être que je devais créer une relation plusieurs-à-plusieurs?
Merci!
De cette façon, une invitation a une image en option (juste ne définissez pas le champ 'picture_id';)) –
wow, je Je n'ai pas vu ça venir! Merci! :) – Karan