私のアプリケーションはローカルで動作しますが、私はHerokuにプッシュしようとしています。私はRails 5アプリケーションでmLabとMongoidを使用しています。私が入力した場合:Herokuエラー - NameError:初期化されていない定数PracticeApp :: Application :: Mongoid
git push heroku master
を私は次のエラーを取得:
r.rb:102:in `load_rake_tasks!': Could not detect rake tasks (LanguagePack::Helpers::RakeRunner::CannotLoadRakefileError)
remote: ensure you can run `$ bundle exec rake -P` against your app
remote: and using the production group of your Gemfile.
remote: rake aborted!
remote: NameError: uninitialized constant PracticeApp::Application::Mongoid
remote: /tmp/build_7a8e6644d3ecbd6336fe612855f87f95/practice_app/config/application.rb:21:in `<class:Application>'
remote: /tmp/build_7a8e6644d3ecbd6336fe612855f87f95/practice_app/config/application.rb:20:in `<module:PracticeApp>'
remote: /tmp/build_7a8e6644d3ecbd6336fe612855f87f95/practice_app/config/application.rb:19:in `<top (required)>'
remote: /tmp/build_7a8e6644d3ecbd6336fe612855f87f95/practice_app/Rakefile:4:in `require_relative'
remote: /tmp/build_7a8e6644d3ecbd6336fe612855f87f95/practice_app/Rakefile:4:in `<top (required)>'
bundle exec rake -P
が正常に動作します。
require_relative 'boot'
require "rails"
# Pick the frameworks you want:
require "active_model/railtie"
require "active_job/railtie"
# require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "action_cable/engine"
require "sprockets/railtie"
require "rails/test_unit/railtie"
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module PracticeApp
class Application < Rails::Application
Mongoid.load!("./config/mongoid.yml", :production)
end
end
マイrakefile:
ここが私のconfig/application.rbファイルであり、それがここで必要なの場合
require_relative 'config/application'
Rails.application.load_tasks
mongoid.ymlの生産一部です:
# mongoid
#
production:
clients:
default:
uri: mongodb://<username>:<password>@ds133340.mlab.com:33340/okclone
options:
connect_timeout: 15
注:私は実際のユーザー名とパスワードをuri abああ。
そして、私のgemfile、それが関連しています場合:
source 'https://rubygems.org'
gem 'rails', '5.0.1'
gem 'puma', '3.4.0'
gem 'sass-rails', '5.0.6'
gem 'uglifier', '3.0.0'
gem 'coffee-rails', '4.2.1'
gem 'jquery-rails', '4.1.1'
gem 'turbolinks', '5.0.1'
gem 'jbuilder', '2.4.1'
group :development, :test do
gem 'mongoid', '~> 6.1.0'
gem 'bson_ext'
gem 'byebug', '9.0.0', platform: :mri
end
group :development do
gem 'web-console', '3.1.1'
gem 'listen', '3.0.8'
gem 'spring', '1.7.2'
gem 'spring-watcher-listen', '2.0.0'
end
group :test do
gem 'rails-controller-testing', '0.1.1'
gem 'minitest-reporters', '1.1.9'
gem 'guard', '2.13.0'
gem 'guard-minitest', '2.4.4'
end
group :production do
gem 'rails_12factor'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
編集:私はまた私のMLAB URIで
heroku config:set PROD_MONGODB = mongodb://dbuser:[email protected]:port1,host2:port2/dbname
を実行しようとしたが、問題を解決していないようでしたが、中に追加しました。
オハイオ州、okです。 – xeno7