# Paginate\_by\_sql and Rails 3.0.0beta4

**URL:** <https://www.ruby-forum.com/t/paginate-by-sql-and-rails-3-0-0beta4/190918>\
**Category:** Rails\
**Created:** [June 30, 2010, 7:24pm UTC](https://www.ruby-forum.com/t/paginate-by-sql-and-rails-3-0-0beta4/190918 "2010-06-30T19:24:59Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Obelix](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/e68b1a/32.png) [@Obelix](https://www.ruby-forum.com/u/Obelix)\
**Post date:** [June 30, 2010, 7:24pm UTC](https://www.ruby-forum.com/t/paginate-by-sql-and-rails-3-0-0beta4/190918/1 "2010-06-30T19:24:59Z")

</div>

I am trying to port an existing rails app running rails 2.3.8 to  
3.0.0beta4

I use this paginate\_by\_sql hack

module ActiveRecord  
class Base  
def self.find\_by\_sql\_with\_limit(sql, offset, limit)  
sql = sanitize\_sql(sql)  
add\_limit!(sql, {:limit =\> limit, :offset =\> offset})  
find\_by\_sql(sql)  
end

```
    def self.count_by_sql_wrapping_select_query(sql)
        sql = sanitize_sql(sql)
        count_by_sql("select count(*) from (#{sql}) as x")
    end

```

end  
end

The add\_limit! method has been removed from ActiveRecord::Base class.  
Are there any work arounds for this? Any alternatives to doing  
pagination by SQL in Rails 3.0.0?

Thanks

---

<div class="post-metadata">

**Author:** ![Obelix](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/o/e68b1a/32.png) [@Obelix](https://www.ruby-forum.com/u/Obelix)\
**Post date:** [July 1, 2010, 1:50am UTC](https://www.ruby-forum.com/t/paginate-by-sql-and-rails-3-0-0beta4/190918/2 "2010-07-01T01:50:09Z")

</div>

fwiw, this works.

module ActiveRecord  
class Base  
def self.find\_by\_sql\_with\_limit(sql, offset, limit)  
sql = sanitize\_sql(sql)  
find\_by\_sql(sql + " LIMIT #{offset},#{limit}")  
end  
def self.count\_by\_sql\_wrapping\_select\_query(sql)  
sql = sanitize\_sql(sql)  
count\_by\_sql(“select count(\*) from (#{sql}) as x”)  
end  
end  
end
