如何使用has_many来“订购”?

时间:2011-10-08 13:02:39

标签: ruby-on-rails ruby models

我有两个表,它们之间有一个连接表:

父母:页面
孩子:事情
加入:网格

在我的模型中,它们建立了多对多的关系(has_many through):

   class Page < ActiveRecord::Base
      belongs_to :books
      has_many :grids
      has_many :things, :through => :grids
    end


class Thing < ActiveRecord::Base
      has_many :grids
      has_many :pages, :through => :grids
    end

    class Grid < ActiveRecord::Base
      belongs_to :page
      belongs_to :thing
    end

现在我希望能够使用网格中的排序ID(称为number)对“事物”进行排序,我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:2)

你需要在find方法中使用“:include(s)”选项,然后“order_by()”......

你会用这样的东西:

Thing.where(...some condition or all..., :include => :grid ).order_by(grid.number)

见:

http://guides.rubyonrails.org/active_record_querying.html

http://m.onkey.org/active-record-query-interface

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html