2017-04-04 5 views
0

私は私のVPS上で私のレールのアプリを展開しようとしているが、私はのRails:アパッチ:旅客:循環依存エラー、DeviseController(例外RuntimeError)

`Circular dependency detected while autoloading constant DeviseController  (RuntimeError) 
/home/user/.gem/ruby/2.4.0/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:509:in 'load_missing_constant' 
/home/user/.gem/ruby/2.4.0/gems/activesupport-5.0.2/lib/active_support/dependencies.rb:203:in 'const_missing' 
/home/user/.gem/ruby/2.4.0/gems/devise-4.2.1/app/controllers/devise/registrations_controller.rb:1:in '<top (required)>'....` 

を言っ/var/log/httpd/error_logでエラーを取得する私はGoogleで検索しましたし、ビンとどこにもいない。私はこのエラーを完全には理解していません。ベースレールアプリを作成し、それは働いた。すべてがシステム全体でうまくいっていると考えること。 devise gemはシステムにインストールされ、bundler installで実行され、エラーは発生していません。また、データベースにすべてをインストールするにはrake db:migrateを実行してください。私はシステム上のすべての問題は疑わしいですが、私のアプリの何かが間違っているか、何かを追加する必要があります。

私のアプリでは、非常に簡単です。このアプリは、人々が登録してログインできるようにします。私は郵便物の特徴を使用せず、使用を念頭に置く標準user会員のみがいます。 deviseで管理者ロールを設定していない。そのすべてのデフォルト設定。

念のために私のApacheの設定は、サーバの設定がArchlinux上で実行されているのApache /旅客ある

`<VirtualHost myapp.tk:80> 
    ServerName myapp.tk 
    ServerAlias www.myapp.tk 
    DocumentRoot "/srv/http/myapp/public" 
    ErrorLog "/var/log/httpd/myapp.tk-error_log" 
    CustomLog "/var/log/httpd/myapp.tk-access_log" common 
    PassengerRuby /usr/bin/ruby 
    RailsEnv production 
    <Directory "/srv/http/myapp/public"> 
     Allow from all 
     Options -MultiViews 
     Require all granted 
    </Directory> 
</VirtualHost>` 

です。すべてが宝石を含む最新バージョンです。

ログファイルや必要な情報が不足している場合は教えてください。簡単な問題ではなく

答えて

0

あなたはこの

config.autoload_paths += Dir["#{config.root}/lib/**/"] 

Rubyは$ LOAD_PATHに記載されているディレクトリ内のファイルを探します追加しようとすることができように思えました。つまり、Rubyはすべてのディレクトリを繰り返し処理し、それぞれが "erb.rb"または "erb.so"というファイルを持っているかどうかをチェックします。いずれかが見つかった場合、インタープリタはそれをロードして検索を終了します。それ以外の場合は、リストの次のディレクトリで再試行されます。リストが使い果たされると、LoadErrorが発生します。

inject Rack::Lock if config.eager_load is false 

コードが熱心に読み込まれない場合、定数は必要に応じてロードされます。定数 自動ロードはスレッドセーフではないので、熱心な読み込みが有効になっていない場合 マルチスレッドは許可しないでください。

+0

申し訳ありませんが、これらの行はどのファイルですか? – deskmonkey

+0

この最初の行を 'config/application.rb'に追加することができます –

+0

返信いただきありがとうございます。私はそれをファイルに追加し、アプリ 'touch tmp/restart.txt'を再起動してApacheを再起動しましたが、変更を加えずにエラーが発生しました。 – deskmonkey