2009-08-27 4 views

ответ

1

Вы можете сделать это:

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

не уверен, что есть лучшие способы сделать это ... надежду на то, что помогает =)

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

Вы также можете добавить к этим другим вещам, таким в

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

или

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

Другим очень простым решением является просто указать заказ на самой ассоциации.

class Post < ActiveRecord::Base 
    belongs_to :category 
end 

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

Любые сообщения, полученные через ассоциацию, уже будут отсортированы. Это позволит вам сохранить детали заказа в самой модели и синтаксис SQL-ish из контроллера.

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

Вернет ваши записи в «created_at».

Смежные вопросы