2016-11-19 14 views
0

私は基本的なRailsアプリケーションを持っており、モデルの乾燥に懸念を抱いています。すべては、開発環境で正常になりますが、私はHerokuのにアプリをアップロードしようとすると、それは常に私にこのエラーを与える:問題がRails 5にロードされていません

/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 

そして、ここで私はすでにやった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 

に位置私は "永続" という名前のモジュール、次のとおりです。

  • は、熱心な負荷をオフにしようとしました
  • が働いていた何も

自動ロード構成に concernsパスを含めることを試みた concernsディレクトリから Persistableモジュールを移動しようとした、私はまだこの問題を抱えています!

UPDATE

私はautoload_pathsをチェックするために、コマンド形式guiderails 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 

答えて

1

まあ、この問題はHerokuサーバの設定にあります。 Herokuブロッキング定数名Persistableのようです。私がPersistableの出現をすべてArchivableに改名すると、それはすぐに機能し始めました。

0

これはあなたにヒントを与えている必要があります。

uninitialized constant Address::Persistable (NameError)

それは検索しよう何らかの理由でAddress内のモジュール明示的で最上レベルの永続性が要求される

class Address < ApplicationRecord 

    include ::Persistable 
+0

ありがとうございます!しかしエラーは、 '' '/app/app/models/address.rb:3:in' ':未初期化定数Persistable(NameError) '' 'という形で表示されます。どこを見ますか? – Max

+0

@Max:あなたのautoload_pathsがどうにか乱れているようです。私は今それを見るだろう。 –

+0

さて、質問で追加さ​​れました。 – Max

関連する問題