From: "Kawaji, Shinya" Date: 2003-08-21T09:22:17+09:00 Subject: [ruby-list:38176] sub class of Mysql かわじ、です Mysql クラスのサブクラスの initialize に、必要な引数を渡しても MysqlError: No Database Selected となるのですが、こういうものなのでしょうか? 具体的には、通常通りに Mysql クラスを使う場合は、問題はありません。 >> db = Mysql.new(nil, 'my_user', 'my_pass', 'my_db') => # >> db.query('select count(*) from my_table') => # しかし、Mysql のサブクラスの initialize に引数を渡すと、 「データベースが選択されていない」となります。 >> class DB < Mysql >> def initialize >> super(nil, 'my_user', 'my_pass', 'my_db') >> end >> end => nil >> db = DB.new => # >> db.query('select count(*) from my_table') MysqlError: No Database Selected from (irb):8:in `query' from (irb):8 これは、Mysql クラスそのものを変更しても同様です。 >> class Mysql >> alias origin_initialize initialize >> def initialize >> origin_initialize(nil, 'my_user', 'my_pass', 'my_db') >> end >> end => nil >> Mysql.new.query('select count(*) from my_table') MysqlError: No Database Selected from (irb):8:in `query' from (irb):8 願わくは、このような形でもデータベースに接続したいと思っています。 環境は、 $ ruby --version ruby 1.8.0 (2003-08-19) [i686-linux] $ /usr/libexec/mysqld --version /usr/libexec/mysqld Ver 3.23.56 for pc-linux on i686 で、MySQL/Ruby は 2.4.5 です。