如何在 Rails 之外的 JRuby 脚本中使用 ActiveRecord?
我想使用 JRuby 运行填充数据库的脚本。我已经在另一个应用程序中为 Rails 服务器运行 JRuby/Rails,并且此设置有效。
我很好地运行了脚本 (foo.rb),直到我尝试在第 2 行中包含 ActiveRecord gem。代码如下所示:
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 数据库,我缺少什么?
I would like to use JRuby to run a script which populates a database. I am already running JRuby/Rails for a Rails server in another application, and this setup works.
I ran the script (foo.rb) fine until I tried to include the ActiveRecord gem in line 2. The code looks like this:
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}
The error I get looks like this:
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
My gem listing includes all of rails 3.0.10, activerecord 3.0.10, activerecord-jdbc-adapter 1.2.0, activerecord-jdbcmysql-adapter 1.2.0.
I also have an environment variable (JRUBY-OPTS=--1.9) which tells JRuby to run version 1.9 when I use Rails.
What am I missing to get JRuby 1.9 to run with ActiveRecord 3.0.10 to hit a MySQL database?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将您的要求更改为:
Change your require to: