Исправьте этот метод Rails / ruby ​​для меня, пожалуйста? - PullRequest
0 голосов
/ 26 января 2010

У меня есть модель поста с самоцветом act-as-taggable-on. Обе таблицы имеют временные метки.

Я начал с

def tags
  @posts = current_user.posts.find_tagged_with(params[:tag], :order => "@posts.tags.updated_at DESC"])
end

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

def tags
  @posts = current_user.posts.find_tagged_with(params[:tag])
  @tags = @posts.tags.all
  @posts = @tags(params[:tag, :order => "@posts.tags.updated_at DESC"])
end

Я хочу отсортировать по дате последнего обновления тегов.

Бонус: сортировка по tag.updated_at или post.updated_at, но в этом конкретном приложении я буду обновлять теги чаще всего, так что только первый будет в порядке.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 26 января 2010

Вы должны присоединиться к таблице tags в своем выражении find:

def tags
  @posts = Post.find_tagged_with(
    params[:tag], 
    :conditions => {:user_id => current_user.id}, 
    :joins => :tags, 
    :order => 'tags.updated_at DESC',
    :group => 'posts.id'
  )
end

Примечание. Найдите правильные условия для выбора только сообщений от текущего пользователя. Этот пример может сработать.

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