[前][次][番号順一覧][スレッド一覧]

rails:1519

From: Akimichi Tatsukawa <akimichi_tatsukawa@y...>
Date: Mon, 14 Aug 2006 22:20:56 +0900 (JST)
Subject: [rails:1519] Rails Engine でのライブラリの読み込みについて

みなさん、こんにちは。立川察理ともうします。
現在、ある Rails Engine を開発中です。
どうしても自前のライブラリを自前のエンジンにうまく読み込むことができません。
どなたが御存知のかた、教えていただけないでしょうか。

エンジンは rails 1.1.4版で作成し、以下のようなディレクトリ構造になっています。

   RAILS_ROOT/vendor/plugins/hl7_engine/lib/hl7_engine/hl7r/hl7r.rb

ここでエンジン内部にて hl7r.rb を利用したいのですが、
エンジンからこれを require する場所として以下の2つがあるようです。

1) RAILS_ROOT/vendor/plugins/hl7_engine/init_engine.rb
2) RAILS_ROOT/vendor/plugins/hl7_engine/lib/hl7_engine.rb

起動時に読み込まれる 1) に以下を加え

  require 'hl7_engine.rb'

2) に以下を加えました

  require 'hl7_engine/hl7r/hl7r.rb'

これで、例えば、以下のようにエンジン固有のマイグレーションをすると、

  RAILS_ROOT> rake db:migrate:engines:hl7_engine

次のような大量の例外が発生します。

Exception `MissingSourceFile' at /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21 - no such file to load -- mysql
Exception `Mysql::Error' at /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.3/lib/active_record/connection_adapters/mysql_adapter.rb:184 - Table 'schema_info' already exists
Exception `ActiveRecord::StatementInvalid' at /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.3/lib/active_record/connection_adapters/abstract_adapter.rb:120 - Mysql::Error: Table 'schema_info' already exists: CREATE TABLE schema_info (version int(11))
Exception `ActiveRecord::StatementInvalid' at /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.3/lib/active_record/connection_adapters/mysql_adapter.rb:189 - Mysql::Error: Table 'schema_info' already exists: CREATE TABLE schema_info (version int(11))
Exception `Mysql::Error' at /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.3/lib/active_record/connection_adapters/mysql_adapter.rb:184 - Table 'engine_schema_info' already exists
(略)
Exception `NoMethodError' at /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.3/lib/active_record/migration.rb:311 - undefined method `table_name' for :hl7_components_hl7_datatypes:Symbol
   -> 0.0061s


疑わしい操作としては読みこまれるライブラリファイルである hl7r.rb の先頭に
$:.unshift File.dirname(__FILE__)
を加えていることぐらいだと思うのですが。
しかし、  $: <<  File.dirname(__FILE__) としても結果は同じになります。

読みこみ方について 1) と 2) でいろいろと試してみましたが、
いずれも上記のように失敗するか、migrationは成功しても hl7r.rb が
読みこまれていない状況になります。
半日近くもこの問題で悩んでおります。
どなたかヒントだけでも与えてもらえないでしょうか。
どうぞよろしく御願いします。

--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

->    1519 2006-08-14 15:20 [akimichi_tatsukawa@y] Rails Engine でのライブラリの読み込みについて
      1520 2006-08-14 20:28 ┗[akimichi_tatsukawa@y]