2011-10-20 12 views
1

私はMRI RubyとJRubyで動作するウェブアプリケーションを持っています。しかし...Ruby vs JRuby:Time.new

私は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でも使えますか?

これが関連している場合、私は知りませんが、私は1.8.7モードでだから

irb(main):002:0> RUBY_VERSION 
"1.8.7" 

は私の問題は、だろうか?もしそうなら、rbenv/jruby-1.6.4のインストールをRUBY_VERSION = 1.9.2のように切り替えるにはどうすればよいですか?

+1

ます。http: //stackoverflow.com/questions/4755900/how-to-make-jruby-1-6-default-to-ruby-1-9 – kreek

答えて

7

はい、それはRUBY_VERSIONに関連しています
1.9モードにするにはJRUBYが必要です。

export JRUBY_OPTS=--1.9 

するか、この(Windowsの場合):あなたがJRUBY_OPTSを介してこれを設定することができます

これを試してみてください

set JRUBY_OPTS=--1.9 

例セッション(Windowsの場合):

> set JRUBY_OPTS=--1.9 
> jirb 
irb(main):001:0> a=Time.new(1,1,1,1,1) 
=> 0001-01-01 01:01:00 +0918 
+0

ありがとうKevin。それはそれをした! –

関連する問題