Ruby 与 JRuby:Time.new
我有一个网络应用程序,大部分可以与 MRI Ruby 和 JRuby 配合使用。但是...
当我使用 MRI 时,我可以做到这一点。
> rails console
irb(main):001:0> a=Time.new(1,1,1,1,1)
=> 0001-01-01 01:01:00 -0500
即它为指定时间创建一个新的 Time 对象。
当我切换到 JRuby 时,我这样做
> rails console
irb(main):001:0> a=Time.new(1,1,1,1,1)
ArgumentError: wrong number of arguments (5 for 0)
from (irb):2: in `evaluate`
from org/jruby/RubyKernel.java:1088 in `eval`
from /home/user/.rbenv/versions/jruby-1.6.4/lib/ruby/1.8/irb.rb:158 in `eval_input`
from /home/user/.rbenv/versions/jruby-1.6.4/lib/ruby/1.8/
....
如何在 JRuby 中创建一个带有我控制的年、月、日、小时和分钟的 Time 对象?如果是这样,这也可以与 MRI Ruby 一起使用吗?
我不知道这是否相关,但
irb(main):002:0> RUBY_VERSION
"1.8.7"
我的问题可能是因为我处于 1.8.7 模式吗?如果是这样,如何将 rbenv/jruby-1.6.4 安装切换为 RUBY_VERSION=1.9.2 ?
I have a web app which works, for the most part with MRI Ruby and JRuby. But...
When I am using MRI, I can do this.
> rails console
irb(main):001:0> a=Time.new(1,1,1,1,1)
=> 0001-01-01 01:01:00 -0500
i.e. It creates a new Time object for the specified time.
When I switch to JRuby I do this
> rails console
irb(main):001:0> a=Time.new(1,1,1,1,1)
ArgumentError: wrong number of arguments (5 for 0)
from (irb):2: in `evaluate`
from org/jruby/RubyKernel.java:1088 in `eval`
from /home/user/.rbenv/versions/jruby-1.6.4/lib/ruby/1.8/irb.rb:158 in `eval_input`
from /home/user/.rbenv/versions/jruby-1.6.4/lib/ruby/1.8/
....
How can I create a Time object in JRuby with a year, month, day, hour, and minutes which I control? If so, can this work with MRI Ruby as well?
I don't know if this is related, but
irb(main):002:0> RUBY_VERSION
"1.8.7"
Could my problem be because I'm in 1.8.7 mode? If so, how do I switch my rbenv/jruby-1.6.4 installation to act like RUBY_VERSION=1.9.2 ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,它与 RUBY_VERSION 有关
您需要 JRUBY 处于 1.9 模式。
您可以通过 JRUBY_OPTS 进行设置
尝试这个:
或这个(在 Windows 上):
示例会话(Windows):
Yes, it is related to the RUBY_VERSION
You need JRUBY to be in 1.9 mode.
You can set this through JRUBY_OPTS
Try this:
or this (on Windows):
Example session (Windows):