【发布时间】:2010-10-09 11:33:29
【问题描述】:
will_paginate gem 在我的 Oracle 版本上已损坏。 WillPaginate 模块中的默认paginate_by_sql 方法是在查询中插入额外的“AS”并导致查询失败。
代码本身很容易修复,但我不确定让 Rails 接受我的更改的最佳方法。
我不想更改 gem 本身的代码,因为这会使我的代码在其他机器上损坏。
我尝试创建一个 lib/test.rb 文件,其中包含:
module WillPaginate
def paginate_by_sql
(my code goes here)
end
end
并从 environment.rb 中要求它,但它没有接受我的更改。 我也尝试从 controllers/application.rb 中要求它,但同样,没有接受我的更改。
暂时,我通过覆盖特定模型本身的方法来让它工作,但这有点小技巧,意味着我不能在这个项目的任何其他模型上使用它。
我确信有一个简单的方法可以做到这一点,但我没有任何运气使用 Google 跟踪它。
【问题讨论】:
-
如果 gem 代码坏了,肯定是到处坏了吗?您是否记录了项目的错误? wiki.github.com/mislav/will_paginate/report-bugs
-
还没有 - 错误出现在处理 oracle 特定情况的块中。原因是因为我使用的是 oracleenhanced(而不是 oracle 或 oci)适配器。我认为大多数人都在使用 oracle 适配器,不会遇到这种情况)无论如何都会很快记录错误。
标签: ruby-on-rails ruby gem will-paginate