私はRailsアプリ(Rails 5)を持っています。開発中は、すべて使用できます。
Rails console
そして、例えばUser.all
、動作しています。
本番環境では、私のアプリは問題なく動作し、エラーは発生しませんが、Rails console production
と入力します(例:User.all
エラーが発生しました:
NameError: uninitialized constant User
from (irb):2
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/railties-5.0.0.1/lib/Rails/commands/console.rb:65:in `start'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/railties-5.0.0.1/lib/Rails/commands/console_helper.rb:9:in `start'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/railties-5.0.0.1/lib/Rails/commands/commands_tasks.rb:78:in `console'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/railties-5.0.0.1/lib/Rails/commands/commands_tasks.rb:49:in `run_command!'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/railties-5.0.0.1/lib/Rails/commands.rb:18:in `<top (required)>'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `block in require'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require'
from /home/alexandre/tcheen/bin/Rails:9:in `<top (required)>'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/spring-1.7.2/lib/spring/commands/Rails.rb:6:in `load'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/spring-1.7.2/lib/spring/commands/Rails.rb:6:in `call'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/spring-1.7.2/lib/spring/command_wrapper.rb:38:in `call'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/spring-1.7.2/lib/spring/application.rb:191:in `block in serve'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/spring-1.7.2/lib/spring/application.rb:161:in `fork'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/spring-1.7.2/lib/spring/application.rb:161:in `serve'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/spring-1.7.2/lib/spring/application.rb:131:in `block in run'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/spring-1.7.2/lib/spring/application.rb:125:in `loop'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/spring-1.7.2/lib/spring/application.rb:125:in `run'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/gems/2.3.0/gems/spring-1.7.2/lib/spring/application/boot.rb:19:in `<top (required)>'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/alexandre/.rbenv/versions/2.3.1/lib/Ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from -e:1:in `<main>'
すべてのクラスで同じ問題がありますが、繰り返しますが、アプリケーションは完全に動作します。私はMac OSで開発し、アプリはdebian 8で本稼働しています。私のモデルは、検証済みという正しい名前が付けられています。ありがとう
私はこの問題を抱えていて、ジョブファイルの1つをTweakした後にそれが起こったことに気付きました。修正したのは、スプリングローダーを再起動することでした。ただ走れ
spring stop
次に、Rails console
通常どおりにロードする必要があります。
私はこれと同じ問題を抱えていました rewolfの答え 上記で一時的に解決されました一時的に。
彼の答えに追加するだけです:
以下のコマンドを実行して spring gemを停止した後
spring stop
bin/
実行可能ファイルをupspringing(からスプリングgemを削除)することで、この問題を永久に修正することもできます。
bin/spring binstub --remove --all
または
spring binstub --remove --all
以下のコマンドを実行して、Railsコンソールを本番環境に移行します
Rails c --environment=production
また、これが今後発生しないようにするには、 spring gemがGemfileのdevelopment
およびtest
グループにのみ存在するようにしてください。
さらに、本番環境では、必ず--without development test
引数をbundle install
コマンドに提供してください。
bundle install --without development test
いつもや普通ではない
bundle install
注意:参考として、コマンドRails c
またはRails console
を実行すると、以下の出力が表示されます。
プロセス26651でSpringプリローダーを介して実行中警告:Springは本番稼働中です。これを修正するには、Spring GemがGemfileの
development
およびtest
グループにのみ存在し、本番環境では常にbundle install --without development test
を使用していることを確認してください
spring gemが運用環境で実行されていることを示しているため、停止するか、bin実行可能ファイルから完全に削除する必要があります。
それで全部です。
これがお役に立てば幸いです