@posts = Category.find(params[:id]).posts
如何使用posts表中的列来订购结果?例如在posts.created_at列上?
答案 0 :(得分:1)
你可以这样做:
@posts = Category.find(params[:id]).posts.all(:order => "created_at")
不确定是否有更好的方法...希望帮助=)
答案 1 :(得分: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")
答案 2 :(得分: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”顺序返回您的记录。