2009-10-19 4 views
0

J'ai essayé de le faire pendant des siècles et peut sembler le saisir. espère que quelqu'un peut aider? J'ai un modèle 'message' qui a beaucoup de relations 'distribuées' avec un modèle 'contact_detail'.écrire un attribut à ma table avec validation?

En gros, un message peut avoir de nombreux contacts associés et un contact peut avoir plusieurs messages. Je peux obtenir ceci pour fonctionner et enregistrer avec succès mais je veux également avoir un attribut de créateur sur le modèle de «distribution» que je veux placer à vrai pour le créateur du message.

ma forme params sont les suivantes:

{ "message" => { "message" => "un grand message ...", "messagable_id" => "58", "title" => "comment vas-tu?", "messagable_type" => "MachineEnquiry", "message_type_id" => "1", "contact_detail_ids" => [ "2", "2", "11", "7"]}, "commit" => "Envoyer un message", "datetime" => ""}

Le modèle 'distribue' a un contact Attribut _detail_id 'et tout cela est en train d'enregistrer mais avant de sauvegarder je veux définir l'attribut de création avec un contact_detail_id.

Je peux donc cela après l'enregistrement, mais je veux valider que le créateur a été réglé, donc je dois le faire avant de sauvegarder ne pas je? et je ne sais pas comment faire cela.

Des idées? J'espère que quelqu'un peut aider?

merci à l'avance rick

Répondre

0

De la façon dont vous décrire les choses, le créateur doit le même pour chaque enregistrement de distribution associé à un message particulier. Rendre beaucoup plus logique d'enregistrer ajouter une nouvelle colonne et appartient à la relation à Message.

class Message < ActiveRecord::Base 
    belongs_to :creator, :class_name => "User" # links creator to your User model 
    validates_presence_of :creator_id # ensures creator_id is not empty 

    ... 
end 

Remplir ce champ de la forme est aussi simple que l'ajout

<%= f.hidden_field :creator_id, current_user.id %> 

Si je me trompe en supposant que le dossier de distribution pour le même message aura le même créateur, alors vous devriez regarder dans accepts_nested_attributes_for pour transmettre des détails à des modèles connexes à partir d'un formulaire.

Questions connexes