J'ai deux modèles différents: les patients et les échantillons. Un patient peut avoir plusieurs échantillons et un échantillon appartient à un patient.Mettre à jour un autre attribut du modèle après enregistrement
est ici les deux modèles simplifiés (avec seulement les informations que j'ai besoin pour ce problème ...):
class Sample < ActiveRecord::Base
attr_accessible :dateOfSample, :patient_attributes, :infantBreastFeedingAtThisTime, :typeBreastFeedingAtThisTime, :idadeDesmameAtThisTime
belongs_to :patient
accepts_nested_attributes_for :patient
end
Et le modèle du patient:
class Patient < ActiveRecord::Base
attr_accessible :date_of_birth, :infant_name, :infantBreastFeeding, :typeBreastFeeding,:idadeDesmame
has_many :samples
end
Ce que je veux faire est, Chaque fois qu'un Sample est créé ou mis à jour, si "dateOfSample" est le dernier échantillon disponible, je veux mettre à jour les attributs du patient (: infantileBreastFeeding,: typeBreastFeeding,: idadeDesmame) avec les derniers attributs d'échantillon particuliers (: infantileBreastFeedingAtThisTime,: typeBreastFeedingAtThisTime,: idadeDesmameAtThisTime)
Comment puis-je faire cela dans le modèle d'échantillon? Utiliser after_save? J'ai essayé mais je ne pouvais pas passer les attributs du patient donc il n'a pas reconnu le patient ... Cela devrait être une simple erreur que je commets, encore des rails noob :)
Merci!
UPDATE:
j'ai une forme d'insérer des échantillons/de mise à jour. À l'intérieur de ce formulaire, j'ai un partiel pour les champs patients (nom et date de naissance). Désolé de ne pas poster le formulaire mais il est trop grand ...
Les échantillons seront-ils toujours ajoutés en tant qu'attributs imbriqués du formulaire patient? –
Non, j'ai un formulaire avec "patient_id" dessus, et je montre quelques autres attributs du patient. Mais oui, jamais je crée ou met à jour un échantillon, il doit avoir des attributs patient – lbramos
Votre réponse à ma question est confuse, alors pourriez-vous s'il vous plaît ajouter le formulaire dont vous parlez à votre question? –