0

rails3.0.5 プロジェクトで as_paperclip_bridge を使用して、PaperClip と ActiveScaffold の両方を使用しようとしています。

しかし、プロジェクトを起動すると以下の初期化エラーが発生します。

=> WEBrick を起動 => Rails 3.0.5 アプリケーションをhttp://0.0.0.0:3000で開発中 => -d で呼び出してデタッチ => Ctrl-C でサーバーをシャットダウン C:/Users/ken/Documents/ を終了NetBeansProjects/fcheck/vendor/plugins/as_paperclip_bridge/init.rb:10: bridge' for ActiveScaffold:Module (NoMethodError) from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.0.5/lib/rails/plugin.rb:81 from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.0.5/lib/rails/initializable.rb:25:inC:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.0.5/lib/rails/initializable.rb からの未定義メソッド instance_exec': 25: run' from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.0.5/lib/rails/initializable.rb:50:inC:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.0.5/lib/rails/initializable.rbからのrun_initializers内:49: each' from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.0.5/lib/rails/initializable.rb:49:inC:/Ruby187/lib/ruby/からのrun_initializers内gems/1.8/gems/railties-3.0.5/lib/rails/application.rb:134:in initialize!' from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.0.5/lib/rails/application.rb:77:insend' from C:/Ruby187/lib/ruby/gems/1.8/gems/railties-3.0.5/lib/rails /application.rb:77:inmethod_missing' from C:/Users/ken/Documents/NetBeansProjects/fcheck/config/environment.rb:7 from C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:inrequire' from C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in require' from C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:inload_dependency' from C:/Ruby187/lib/ruby/gems/1.8 new_constants_in' from C:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:inC:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-3.0.5/lib/active_support/dependencies から /gems/activesupport-3.0.5/lib/active_support/dependencies.rb:596:in load_dependency に。rb:239:in require' from C:/Users/ken/Documents/NetBeansProjects/fcheck/config.ru:3 from C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.2.3/lib/rack/builder.rb:46:ininstance_eval' from C:/Ruby187/lib/ruby/gems/1.8/gems/rack-1.2.3/lib/rack/builder.rb:46:in initialize' from C:/Users/ken/Documents/NetBeansProjects/fcheck/config.ru:1:innew' from C:/Users/ken/ドキュメント/NetBeansProjects/fcheck/config.ru:1

as_paperclip_bridge\init.rb のコードは、モジュール メソッド 'ActiveScaffold.bridge' を呼び出そうとしていますが、見つかりませんでした。それでも、rails2.3.8 プロジェクトでは同じコードがエラーなく動作しています。

バージョン 2 と 3 で Rails の初期化コードに大きな違いがあることがわかります。

Rails 2.3.8 では、initializer.rb の「load_gems」メソッドの後に呼び出される「load_plugins」メソッドでプラグインがロードされます。ただし、rails3 には initializer.rb がなく、読み込みプロセスがまったく異なるようです。

また、AS gem を削除し、AS プラグインと as_paperclip_bridge プラグインの両方をインストールしようとしました。しかし、エラーは消えていません。

誰かがエラーが発生した理由を説明できますか?!

とにかく、解決策または回避策が得られることを本当に望んでいます。

ありがとう、ケンイチ

4

1 に答える 1

0

自己返信。

最新の ActiveScaffold 実装には as_paperclip_bridge が必要ないことに気付きました。(橋も含みます)

画像ファイルに PaperClip を使用するには、ImageMagick と RMagick gem をインストールしてください。または、「as_paperclip_bridge があるべきだ」と考えるかもしれません。

ありがとう、ケンイチ

于 2011-07-18T17:20:26.970 に答える