私は基本的な Rails アプリケーションを持っており、モデルを乾燥させるために懸念事項を使用しようとしています。開発環境ではすべてうまくいきますが、アプリを Heroku にアップロードしようとすると、常に次のエラーが表示されます。
/app/app/models/address.rb:3:in `<class:Address>': uninitialized constant Address::Persistable (NameError)
熱心な読み込みを無効にしようとしましたが、役に立ちませんでした。
ここに私のアドレスモデルがあります:
class Address < ApplicationRecord
include Persistable
belongs_to :city
belongs_to :company
validates :city_id, :human, :lat, :lng, presence: true
end
そして、これが私が「persistable」と名付けたモジュールです。app/models/concerns/persistable.rb
module Persistable
extend ActiveSupport::Concern
included do
scope :historical, -> { where(is_historical: true) }
scope :deleted, -> { where(is_deleted: true) }
default_scope { where(is_historical: false, is_deleted: false) }
def delete
update_attribute(:is_deleted, true)
end
def archive
update_attribute(:is_historical, true)
end
def revive
update_attribute(:is_historical, false)
update_attribute(:is_deleted, false)
end
end
end
私がすでにしたこと:
- 熱心な読み込みをオフにしようとしました
Persistable
モジュールをconcerns
ディレクトリの外に移動しようとしましたconcerns
自動ロード構成へのパスを含めようとしました
何も機能しませんでした。まだこの問題があります。
アップデート
autoload_paths を確認するためにコマンド フォームガイドを作成したところ、次の結果が得られました。 rails r 'puts ActiveSupport::Dependencies.autoload_paths'
D:/work/rails/www/app/models/concerns
D:/work/rails/www/app/assets
D:/work/rails/www/app/channels
D:/work/rails/www/app/controllers
D:/work/rails/www/app/helpers
D:/work/rails/www/app/jobs
D:/work/rails/www/app/mailers
D:/work/rails/www/app/models
D:/work/rails/www/test/mailers/previews