`
DigitalSonic
  • 浏览: 216093 次
社区版块
存档分类
最新评论

ActiveRecord与AR-JDBC的兼容性问题

阅读更多

Ruby的作者是日本人,这个我想大家都知道,所以第一手的语言相关资料是日语的这不稀奇。好在我不是研究语言本身的, 也就不用去折腾什么日语了。

最近在看JRuby on Rails的东西,在实验一段小的数据库操作的代码时偏偏就碰上了个奇怪的问题——在事务中执行save!方法报错:

D:/jruby-1.0.2/lib/ruby/gems/1.8/gems/activerecord-2.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:73:in `transaction': wrong # of arguments(2 for 1) (ArgumentError)
        from D:/jruby-1.0.2/lib/ruby/gems/1.8/gems/activerecord-2.0.1/lib/active_record/transactions.rb:80:in `transaction'
        from D:/jruby-1.0.2/lib/ruby/gems/1.8/gems/activerecord-2.0.1/lib/active_record/transactions.rb:100:in `transaction'

基本可以确定是ActiveRecord内部的错,可是AR用的这么广泛,没道理出这种问题,因此我初步断定是JRuby中用的ActiveRecord-JDBC 0.6和ActiveRecord 2.0.1的兼容性问题。JRuby的开发组核心成员都在Sun,不是日本人,AR-JDBC也不是日本人开发的。。。可我为什么在Google中始终找不到类似我这样的错呢,好不容易找到了确实个日本的博客(http://d.hatena.ne.jp/akm/searchdiary?word=*%5Bjava%5D),看着报错信息有那么点像,就用Google把内容一段段翻译出来,最后他还给了个JRuby的JIRA地址(http://jira.codehaus.org/browse/JRUBY-1570)。事实证明我的推断是正确的,这个问题已在AR-JDBC的Trunk中修复了。

是我的搜索能力不行?还是全球碰上这个问题的人太少?希望下次有人遇到相同的问题能先搜到我这篇Blog,呵呵。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics