[#46647] RubyでWindowsの常駐サービスプログラムを作る方法 — kouichi_someya@...

はじめまして。

12 messages 2009/12/16
[#46649] Re: RubyでWindowsの常駐サービスプログラムを作る方法 — "U.Nakamura" <usa@...> 2009/12/17

こんにちは、なかむら(う)です。

[ruby-list:46583] ActiveRecordとArrayのchoiceメソッドでエラー(1.8.7)

From: Gen Ito <it0gn.25@...>
Date: 2009-12-01 03:47:51 UTC
List: ruby-list #46583
itogともうします。

Ruby 1.8.7で、Array:choiceを使うため、逆引きRubyに載っている
方法を使っているのですが、
このchoiceメソッドを、ActiveRecordと一緒に使った場合に
エラーになってしまいます(コードは後述)。

require 'active_record' した状態で
a.choiceを呼ぶと

in `rand': wrong number of arguments (1 for 0) (ArgumentError)

というエラーが発生してしまいます。


ActiveRecordの中まで追えていないのですが、このエラーの原因、
解決方法の手がかりなどご教授いただけないでしょうか?


下記、コード
----------------------------------------
require 'rubygems'
require 'activerecord'        #この行をコメントアウトする問題なく実行される

if RUBY_VERSION < '1.9.0'
  class Array
    def choice
      at( rand( size ) )
      #at( rand() )  # こうするとエラーはなくなるが期待した動作はせず
    end
end

a = ["foo", "bar", "baz"]
p a.choice

p rand(10) #これは正常動作
----------------------------------------
以上、コード終わり。


・実行環境
FreeBSD 7.1-RELEASE-p8
Ruby 1.8.7
Active Record 2.3.2


以上、よろしくお願いします。

----
itog

In This Thread

Prev Next