Просто выполните все обычные операции с SQL как часть запроса с параметрами.
@posts = Post.paginate :order => "date DESC", :join => " inner join votes on post.id..." , :group => " votes.user_id"
http://apidock.com/rails/ActiveRecord/Base/find/class
Так что я не знаю много о ваших моделях, но вы, кажется, знаете кое-что о SQL, поэтому
именованные области: вы просто помещаете запрос в метод класса:
named_scope :index , :order => 'date DESC', :join => .....
но они могут принимать параметры
named_scope :blah, {|param| #base query on param }
для вас, особенно если вы более знакомы с SQL, вы можете написать свой собственный запрос,
@posts = Post.find_by_sql( <<-SQL )
SELECT posts.*
....
SQL