Как я могу упорядочить массив по количеству раз, когда каждый объект появляется в соединительной таблице в RoR? - PullRequest
0 голосов
/ 23 августа 2010

Я делаю поиск по модели, как это:

search_results = Note.description_like("test string")

Итак, у меня есть массив заметок. Я хочу упорядочить их по частоте появления note_id в моей объединенной таблице note_categories. Как я могу это сделать?

1 Ответ

1 голос
/ 23 августа 2010

Попробуйте это (Синтаксис Rails 2.x):

Note.all(
  :select => "notes.*, COUNT(notes.id) AS note_count",
  :joins => :note_categories, 
  :conditions => ["notes.description LIKE ?", "test string%"],
  :group => :id,
  :order => :note_count
)

Редактировать 1 В моем ответе не используются области, созданные seach_logic, и он будет работать.

Если вы используете SearchLogic, ваш запрос может быть записан как:

Note.description_like("test string").all(
  :select => "notes.*, COUNT(notes.id) AS note_count",
  :joins => :note_categories, 
  :group => :id,
  :order => :note_count
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...