私たちはUserクラスのミックスインとして使用したいと考えています。この懸念は、当社が複数の製品に使用している当社の別個のレールエンジンにあります。モジュール内にネストされた懸念を使用する
このエンジンのすべては、私たちがMyEngineと呼ぶ同じモジュールに保存されています。
module MyEngine
module EngineUser
extend ActiveSupport::Concern
end
end
そして、私たちはRailsアプリケーション内の他の関心事のようにそれを含めることトリングされています
class User < ActiveRecord::Base
include MyEngine::EngineUser
# ...
end
これは、それが言うエラーが発生します(読みやすくするために、いくつかのフォーマット済み)
/Users/foo/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:495:in load_missing_constant:
自動ロード定数EngineUser、 にできませんはそれを右のファイルです.....
を定義するために/Users/foo/Perforce/engine_folder/app/models/concerns/engine_user.rb を期待しました.. 。<。 <
クラスの周りのmodule MyEngine
を削除して、ユーザーにインクルードすると、うまくいきます。
私はレールがオートローディングをしていることは知っていますが、なぜこれは動作しませんか?それはファイルがクラスを持っていることを知っています...もし私がエンジン/アプリケーション/懸念にそれを移動すると、それはそこにそれを見つけることができないと言います。だからイライラする。
だから私はこれがうまくいくと思いますが、別の解決方法が出てきました。 ありがとうございました! – Avaista