【问题标题】:How to use ActiveRecord in a JRuby script outside Rails?如何在 Rails 之外的 JRuby 脚本中使用 ActiveRecord?
【发布时间】:2011-12-06 23:33:28
【问题描述】:

我想使用 JRuby 来运行一个填充数据库的脚本。我已经在另一个应用程序中为 Rails 服务器运行 JRuby/Rails,并且此设置有效。

在我尝试在第 2 行中包含 ActiveRecord gem 之前,我运行脚本 (foo.rb) 正常。代码如下所示:

require 'rubygems'
require 'activerecord'
require 'csv'
nf=[]
Dir["./*.*"].each{|f|nf<<f if File::ctime(f) + 600 > Time.now} 
nf.each{|f| p f.inspect}

我得到的错误如下所示:

unix> jruby --1.9 foo.rb
LoadError: no such file to load -- activerecord
require at org/jruby/RubyKernel.java:1047
require at /home/user/.rbenv/versions/jruby-1.6.4/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36
(root) at foo.rb:2

我的 gem 列表包括所有 rails 3.0.10、activerecord 3.0.10、activerecord-jdbc-adapter 1.2.0、activerecord-jdbcmysql-adapter 1.2.0。

我还有一个环境变量 (JRUBY-OPTS=--1.9),它告诉 JRuby 在我使用 Rails 时运行 1.9 版。

让 JRuby 1.9 与 ActiveRecord 3.0.10 一起运行以访问 MySQL 数据库,我缺少什么?

【问题讨论】:

    标签: mysql activerecord jruby


    【解决方案1】:

    将您的要求更改为:

    require 'active_record'
    

    【讨论】:

    • 我不f#$%^相信它!为什么要为 JRuby 使用不同的符号?
    • 我认为是一样的。名称在 v2 和 v3 之间更改。
    猜你喜欢
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多