rails + sqlserver 2005 分页 问题记录

阅读更多
都说sqlserver + rails 用着别扭,终于体会到了
从环境搭建到数据库连接再到今天的分页,不过没办法,硬着头碰见问题解决问题呗。

下面是网上找的解决will_paginate分页问题

首先参考:http://hlee.iteye.com/blog/360381

我开始尝试了一下不行,后来进了老外写的原文看了一下  用老外的可行了,一直也看不出什么情况,记录一下,以后需要的时候再来看看


module ActiveRecord
  module ConnectionAdapters
     class SQLServerAdapter      
       def add_limit_offset!(sql, options)        
         if options[:limit] and options[:offset]          
            options[:order] ||= sql.match('FROM (.*) ')[1] + '.id'          
            sql.sub!(/ORDER BY.*$/i, '')          
            sql.sub!(/SELECT/i,                  
            "SELECT row_number() over( order by #{options[:order]} ) as row_num, \n")          
            sql.replace("select top #{options[:limit]} * from (#{sql}) as tmp_table1 \n" +                
            "where row_num > #{options[:offset]}")        
          end
          p sql
        end    
      end  
   end
end

你可能感兴趣的:(Rails,SQL,ITeye,Ruby,ActiveRecord)