Я использую Rails 3 и SQLite и пытаюсь сделать запрос активной записи и упорядочить результаты одновременно, используя информацию из другой модели.У меня есть модель ресурсов (которая принадлежит пользователю) и модель shared_items для управления пользователями, которые делятся ресурсами друг с другом.Я хотел бы создать ленту всех ресурсов, которые пользователь создал и которые им поделились.Модель ресурсов с рабочим запросом:
class Resource < ActiveRecord::Base
has_many :shared_items, :dependent => :destroy
default_scope :order => 'resources.shared_items.created_at DESC'
scope :from_users_sharing_with, lambda { |user| shared_with(user) }
private
def self.shared_with(user)
resource_ids = %(SELECT resource_id FROM shared_items WHERE shared_with_id = :user_id)
where("id IN (#{resource_ids}) OR user_id = :user_id",
{ :user_id => user })
end
Этот запрос создает хороший массив 'feed' для всех ресурсов, которые были предоставлены пользователю или созданы им, но упорядочены по дате создания ресурса.чем дата создания соответствующего shared_item, что я и хочу сделать.Как я могу написать порядок на уровне базы данных?Я думал, что смогу сделать упорядочивание в Ruby (как Ян предлагает здесь ), но так как я хочу получить 25 записей за раз в нумерации страниц, я не думаю, что смогу выбрать этот вариант.Любые мысли приветствуются.