Почему мой контроллер не заказывает то, о чем я говорю? - PullRequest
2 голосов
/ 23 сентября 2011

Действие моего контроллера вызывает все изображения, принадлежащие конкретному пользователю, и я пытаюсь упорядочить по его позиции (я использую гем от activ_as_list), но когда я перехожу на страницу, изображения сначала сортируются по дате создания, а затемположение (согласно консоли рельсов).Но так как он заказывает по дате создания, сначала игнорируется мой заказ контроллера, что не годится.

вот мое действие

  def manage_tattoos
    @tattoos = current_member.tattoos.order("position DESC")
  end

, и моя консоль сервера показывает:

  Tattoo Load (0.6ms)  SELECT `tattoos`.* FROM `tattoos` WHERE
 (`tattoos`.member_id = 1) ORDER BY tattoos.created_at DESC, position DESC

Ответы [ 4 ]

1 голос
/ 24 сентября 2011

Есть ли у вашей ассоциации между Member и Tattoo пункт заказа? Э.Г.

# Member class
has_many :tattoos, :order => "created_at DESC"

Это так? Если это так, вам может потребоваться изменить ваш запрос на что-то вроде:

Tattoo.where(:member_id=>current_member.id).order("position DESC")

Мне не известен способ очистки предложения order от ассоциации ActiveRecord.

1 голос
/ 23 сентября 2011

Вы пытались указать порядок в ассоциации?

 class TodoList < ActiveRecord::Base
   has_many :todo_items, :order => "position"
 end
0 голосов
/ 01 октября 2011

Ну, кажется, я просто очень рассеян и совершенно забыл, что я установил область действия модели по умолчанию.Вытащил это, и все в порядке

0 голосов
/ 23 сентября 2011

Или укажите, что делать с созданным_ат:

current_member.tattoos.order("position DESC, created_at DESC")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...