我一直在嘗試使用Ruby中的Active Record(特別是JRuby)連接到遠程JDBC/SqlServer數據庫。這裏是我的代碼:通過Ruby訪問Sql Server活動記錄JDBC
require 'activerecord'
require 'activerecord-jdbc-adapter'
ActiveRecord::Base.establish_connection(
:adapter => 'sqlserver',
:username => '<username>',
:password => '<password>',
:database => '<database_name>',
:url => '<database_url>',
)
@connection = ActiveRecord::Base.connection
puts @connection
我也把'jdbc'作爲適配器,也沒有工作。
這裏是我得到了錯誤的縮寫版本:
NameError: cannot load Java class com.microsoft.sqlserver.jdbc.SQLServerDriver
for_name at org/jruby/javasupport/JavaClass.java:286
get_proxy_class at org/jruby/javasupport/JavaUtilities.java:34
block in java_import at uri:classloader:/jruby/java/core_ext/object.rb:49
map at org/jruby/RubyArray.java:2486
java_import at uri:classloader:/jruby/java/core_ext/object.rb:36
block in driver_class at C:/jruby-9.1.12.0/lib/ruby/gems/shared/gems/activerecord-jdbc-adapter-1.3.23/lib/arjdbc/jdbc/driver.rb:24
module_eval at org/jruby/RubyModule.java:2833
block in driver_class at C:/jruby-9.1.12.0/lib/ruby/gems/shared/gems/activerecord-jdbc-adapter-1.3.23/lib/arjdbc/jdbc/driver.rb:23
synchronized at org/jruby/javasupport/JavaObject.java:257
這與其說是一個具體的問題,但更多的是我只是不確定該何去何從。由於服務器上的JDBC,在純Ruby中使用「activerecord-sqlserver-adapter」不起作用。 (我可能會濫用這裏的術語,我對數據庫的工作原理並不熟悉。)
但是,jdbc/sqlserver gems似乎沒有很好的支持或過時。這可能沒有銀彈,但任何一種方向都會有很大的幫助。
也許這樣會有幫助嗎? https://github.com/jruby/activerecord-jdbc-adapter/blob/master/activerecord-jdbcmssql-adapter/README.rdoc – engineersmnky
這是我的理解,該寶石已過時?但我會試一試。 – Cooper
這就是你使用'activerecord-jdbc-adapter'的gem我簡單地提供了他們自述文件中的說明(因爲它被掩蓋了)如何安裝正確的驅動程序(這是你的問題)以及如何配置ActiveRecord來使用它 – engineersmnky