我正在尝试将运行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中的分页?
由于
答案 0 :(得分:0)
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_paginategem "will_paginate", "~> 3.0.pre2"
到您的Gemfile