Ordem resulta em sub mesa

votos
0
@posts = Category.find(params[:id]).posts

Como posso ordenar os resultados com coluna da tabela de mensagens? Por exemplo na coluna posts.created_at?

Publicado 27/08/2009 em 05:28
fonte usuário
Em outras línguas...                            


3 respostas

votos
1
@posts = Category.find(params[:id]).posts.all(:order => "created_at")

Você também pode adicionar a este outras coisas, como

@posts = Category.find(params[:id]).posts.all(:order => "created_at", :limit => 10)

ou

@posts = Category.find(params[:id]).posts.all(:order => "created_at DESC")
Respondeu 27/08/2009 em 10:54
fonte usuário

votos
1

Você consegue fazer isso:

@posts = Category.find(params[:id]).posts.all(:order => "created_at")

não tenho certeza se há melhores maneiras de fazer isso ... espero que ajude =)

Respondeu 27/08/2009 em 05:57
fonte usuário

votos
0

Outra solução muito simples é simplesmente especificar a ordem na própria associação.

class Post < ActiveRecord::Base
  belongs_to :category
end

class Category < ActiveRecord::Base
  has_many :posts, :order => "created_at"
end

Quaisquer mensagens buscados através da associação já serão classificados. Isto irá permitir que você mantenha os detalhes de encomenda no próprio modelo e a sintaxe SQL-ish fora do controlador.

@posts = Category.find(params[:id]).posts

Vai lhe dar de volta seus registros em ordem "created_at".

Respondeu 30/08/2009 em 03:27
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more