Как мне выполнить этот поиск в RoR? - PullRequest
0 голосов
/ 09 августа 2010

Это структура моей базы данных в Ruby on Rails:

  • У пользователя много заметок
  • заметки имеют много категорий
  • категории имеют много заметок

Отношения между заметками и категориями has_many :through, у меня есть модель с именем NoteCategory и таблица note_categories.

Модель заметки имеет поле даты, которое представляет дату создания заметки.

Я получаю заметки для пользователя с этой строкой:

current_user.notes

Как я могу предоставить дату и вернуть категории для всех заметок пользователя, которые были созданы в эту дату? Спасибо за чтение.

edit: Забыл упомянуть, что мне также нужно упорядочить категории по полю созданного в примечании, к которому они прикреплены.

изменить 2: вот фактические ассоциации

user.rb

has_many :notes

note.rb

belongs_to :user 
has_many :note_categories
has_many :categories, :through => :note_categories

category.rb

has_many :note_categories
has_many :notes, :through => :note_categories

1 Ответ

2 голосов
/ 09 августа 2010

Если у вас есть

class User
  has_many :notes
  has_many :categories, :through => :notes
end

class Note
  has_many :categories # <-- source reflection
end

, используйте этот искатель:

user.categories.all(:order => 'notes.created_at')

или

user.categories.find :all, :order => 'notes.created_at'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...