def paginate_from_sql(model, sql, total, per_page) @object_pages = Paginator.new self, total, per_page, @params['page'] @objects = model.find_by_sql(sql + " LIMIT #{per_page} " + "OFFSET #{@object_pages.current.to_sql[1]}") end
e.g. paginate_from_sql(Artist, sql, count_sql, 10) will generate @artists & @artist_pages
def paginate_from_sql(model, sql, count_sql, per_page)
plural_model_name = "@#{model.name.underscore.pluralize}".to_sym
paginator_name = "@#{model.name.underscore}_pages".to_sym
self.instance_variable_set(paginator_name, Paginator.new(self, model.count_by_sql(count_sql), per_page, @params['page']))
self.instance_variable_set(plural_model_name, model.find_by_sql(sql + " LIMIT #{per_page}" + " OFFSET #{self.instance_variable_get(paginator_name).current.to_sql[1]}"))
end
You need to create an account or log in to post comments to this site.