paginate_by_sql和Rails3.0.0Beta4

时间:2010-06-30 17:55:41

标签: pagination ruby-on-rails

我正在尝试将运行rails 2.3.8的现有rails应用程序移植到 3.0.0beta4。

我目前使用此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 

add_limit!方法已从ActiveRecord :: Base类中删除。 这有什么工作吗?做的任何替代方案 SQL在Rails 3.0.0中的分页?

由于

2 个答案:

答案 0 :(得分:0)

嗯,fwiw,这似乎有效。

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 

您可以将其保存在Application Controller中。它必须在加载任何ActiveRecord类之前首先加载,因此ApplicationController将是一个好地方。

答案 1 :(得分:0)

我知道这已经过时了,但我偶然发现了一个类似的问题,希望可以帮助其他人。要解决此问题,请确保使用添加

的Rails 3兼容版本的will_paginate
gem "will_paginate", "~> 3.0.pre2"

到您的Gemfile