Отношение / сортировка не работает в контроллере рельсов? - PullRequest
0 голосов
/ 19 мая 2010

У меня есть следующее отношение в моем приложении rails:

жанр - имеет много - авторов

авторы - принадлежат жанру и имеет много книг

книг - принадлежит авторам и пользователям

(пользователи могут добавлять книги в БД)

в моем контроллере у меня есть:

@books=current_user.books(:include => [:author => :genre], :order => 'created_at DESC')

Хотя я могу использовать переменную @books в своих представлениях - ничего не сделано правильно (т. Е. Не отображаются только книги, добавленные этим пользователем, и не создается по убыванию созданной_ат) ...

есть идеи?

-

Также я использую разрешение для аутентификации пользователя, поэтому current_user без @ в контроллере, кажется, работает нормально

На самом деле, я думаю, что отношение работает, только сортировка может не работать ...

1 Ответ

1 голос
/ 19 мая 2010

По какому созданному_сортировке вы хотите отсортировать? Когда вы вступаете в объединение, обычно безопаснее быть конкретным:

@books = current_user.books(..., :order => 'books.created_at DESC')

Другая вещь, которую вы можете сделать, это отсортировать ее в клиенте, что может быть быстрее, чем если бы вы не делали СУБД, если вы не разбивали на страницы:

@books = current_user.books(...).sort_by(&:created_at).reverse

Если вы разбиваете эти результаты на страницы, то вам нужно будет отсортировать их в запросе, и никак не обойтись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...