如何在Rails中重写ActiveModel类型处理(JRuby)

时间:2014-04-11 19:51:15

标签: ruby-on-rails oracle jruby rails-activerecord jrubyonrails

我试图在oracle表周围创建一个rails模型,该表有一个列" SESSION_XML"使用Oracle的XMLTYPE。每当我尝试使用模型从db获取数据时,连接适配器都会响应:

SELECT "ZC_SESSION_DATA".* FROM "ZC_SESSION_DATA" WHERE ROWNUM <= 1
ActiveRecord::StatementInvalid: Java::JavaLang::NoClassDefFoundError: oracle/xdb/XMLType:SELECT  "ZC_SESSION_DATA".* FROM "ZC_SESSION_DATA"  WHERE ROWNUM <= 1
from oracle.jdbc.oracore.OracleTypeADT.applyTDSpatches(OracleTypeADT.java:1081)

我觉得Java(我在JRuby之上使用Rails)抱怨它没有用于解析XMLTYPE列的类型,所以我的问题是:如何我可以强制rails将XMLTYPE解释为扁平字符串。

我自己需要解析XML,但是如何让适配器停止尝试解析它呢?

1 个答案:

答案 0 :(得分:0)

这是一个Oracle问题,而不是ActiveRecord问题:

https://community.oracle.com/thread/485754?start=0&tstart=0

TL; DR那里没有加载定义XMLType的jar。