Как "заказать" с помощью has_many через? - PullRequest
1 голос
/ 08 октября 2011

У меня есть две таблицы с таблицей соединений между ними:

Родитель: Страницы
Ребенок: Вещи
Присоединяйтесь: Сетки

В моих моделях они имеют отношение многих ко многим (через has_many):

   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

Теперь я хочу иметь возможность сортировать «вещи», используя идентификатор заказа из сетки, называемый number, как я могу это сделать?

Спасибо!

1 Ответ

2 голосов
/ 08 октября 2011

вам нужен параметр ": include (s)" в вашем методе find, а затем "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

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