J'ai les modèles suivants:un many-assoc beaucoup trouvent des conditions
project.rb
has_many :tasks
task.rb
belongs_to :project
has_many :assignments
has_many :users, :through => :assignments
utilisateur . rb
has_many :assignments
has_many :tasks, :through => :assignments
assignment.rb
belongs_to :task
belongs_to :user
Ainsi, par exemple: Project.first.title # => "Manhattan" Project.first.tasks.map (&: nom) # => ["Trouver des scientifiques", "Trouver de l'argent", "Trouver un emplacement"] Project.first.tasks.first.users.map (&: full_name) # => ["James Maxwell", "Evariste Galois", "Jules Verne" ']
Ma première question est: Comment puis-je trouver tous les noms des personnes peut-être avec le symbole de proc en un seul coup, j'ai essayé:
Project.first.tasks.users.full_name #=> AND FAILED
Project.first.tasks.map(&:users).full_name #=> AND FAILED
Project.first.tasks.map(&:users).map(&:full_name) #=> AND FAILED
Toutes les idées?
Et je pense que cette question suivante pourrait être dans le même parc de balle:
Comment puis-je faire une découverte du projet avec les conditions qui recherche l'attribut « full_name » des utilisateurs de ses tâches?
Exemple
Project.all(:include => {:tasks => :users}, :conditions => ['tasks.users.full_name LIKE ?', query]) #this failed
Je pense que le problème est à la 'tasks.users'.
Merci à tous, bonne action de grâce!
Oh je vois, donc je n'ai pas vraiment à faire : conditions => ['tasks.users.full_name Like?', query] car l'inclusion des utilisateurs permet 1) aux utilisateurs d'être utilisés en mode autonome et 2) d'être correctement ciblés sur les tâches lorsqu'ils sont interrogés. La recherche de tous les noms complets des utilisateurs des tâches d'un projet fonctionne! - Y a-t-il une préférence informatique/mathématique pour expliquer pourquoi nous pouvons enchaîner les associations plusieurs-à-plusieurs pour obtenir des attributs «grand-totaux»? J'aime Project.first.tasks.users.map (&: full_name) Je peux imaginer des scénarios où les gens ont besoin de ce Merci Radar. Plz considère cas fermé. Joyeuses fêtes! –