2009-07-27 3 views
0

droit au but ....objets associés avant validation object.save ou reculer object.save sur l'objet associé échec de vaidation

Il y a des tâches qui ont affecté les utilisateurs

class Task < ActiveRecord::Base 
has_many :task_assignments, :dependent => :destroy 
has_many :assigned_users, :through => :task_assignments, :source => :user 

    validates_associated :task_assignments 
end 

Et les utilisateurs ont attribué des missions

class User < ActiveRecord::Base 
    has_many :task_assignments, :dependent => :destroy 
    has_many :assigned_tasks, :through => :task_assignments, :source => :task 
end 

La table task_assignments ressemble à ce

class TaskAssignment < ActiveRecord::Base 
    validates_presence_of :user, :message => 'You must add some USERS fool!' 
    belongs_to :user 
    belongs_to :task 
end 

Ces associations semblent bien fonctionner: 0)

est ici que le bât blesse - quand j'ajoute une nouvelle tâche à travers/tâches/nouvelle, je veux aussi préciser une liste d'utilisateurs affectés à cette tâche, que le formulaire retourne dans "params [: users_list] [: id]".

Je peux obtenir ceci pour fonctionner, mais je ne veux pas que le formulaire valide à moins qu'il y ait au moins un utilisateur choisi.

Je ne peux pas pour la vie de moi comprendre comment obtenir cette validation à avoir lieu dans les modèles plutôt que dans la créer la méthode.

Comme vous pouvez le voir, j'ai jeté "validates _associated: task _assignments" dans la méthode des tâches, mais en vain. Je suis clairement dans ma tête.

Merci pour votre aide.

Répondre

0

Je pense que vous devez nommer les paramètres user_ids ...

f.e .:

params[:users_ids][:id] 
Questions connexes