У меня есть следующие модели:один-много-много ассоциативный найти условия
project.rb
has_many :tasks
task.rb
belongs_to :project
has_many :assignments
has_many :users, :through => :assignments
пользователь. rb
has_many :assignments
has_many :tasks, :through => :assignments
assignment.rb
belongs_to :task
belongs_to :user
Так, например: Project.first.title # => "Manhattan" Project.first.tasks.map (&: имя) # => [«Найти ученых», «Найти деньги», «Найти местоположение») Project.first.tasks.first.users.map (&: full_name) # => ['James Maxwell', 'Evariste Galois', 'Jules Verne ']
Мой первый вопрос: Как я могу найти все имена лиц, возможно, с символом, чтобы срабатывать в одном кадре, я пытался:
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
Любые идеи?
И я думаю, что следующий вопрос может быть в том же парке мяч:
Как я могу сделать находку проекта с условиями, которые ищут в «full_name» атрибут пользователей своих задач?
Пример
Project.all(:include => {:tasks => :users}, :conditions => ['tasks.users.full_name LIKE ?', query]) #this failed
Я думаю, что проблема в 'tasks.users'.
Спасибо всем, радуйтесь!
О, я вижу, поэтому мне не нужно было делать : conditions => ['tasks.users.full_name Как?', query], потому что включение пользователей позволяет 1) пользователям использовать сортировку «автономно» и 2) правильно привязанные к задачам при запросе. Выполняется поиск всех полных имен пользователей задач проекта! - Существует ли компьютерная наука/математическое предпочтение относительно того, почему мы можем связать ассоциации «многие ко многим», чтобы дать некоторые «грандиозные» атрибуты? Как Project.first.tasks.users.map (&: full_name) Я могу себе представить сценарии, где люди нуждаются в этом Спасибо Радар. Plz рассматривает случай закрытым. Счастливых праздников! –