2016-04-25 6 views
3

Dateinamen -Kontinuierlicher Controller kann nicht automatisch geladen werden (in Produktion). Kein Fehler in der Entwicklung

app/controllers/invoice/inventory/department/pharmacy_invoices_controller.rb

Dateiinhalt -

class Invoice::Inventory::Department::PharmacyInvoicesController < ApplicationController 
... 
end 

ich keinen Fehler in der Entwicklung erhalten, aber in der Produktion bekomme ich diesen Fehler -

F, [2016-04-25T13:08:00.754597 #13500] FATAL -- : 
LoadError (Unable to autoload constant Invoice::Inventory::Department::PharmacyInvoicesController, expected /xxxxxx/yyyyyyy/app/controllers/invoice/inventory/department/pharmacy_invoices_controller.rb to define it): 

I hat ssh und überprüft jede Datei auf dem Server. Es ist die gleiche wie die Entwicklung, die offensichtlich ist. Ich kann nicht herausfinden, warum es einen solchen Fehler in der Produktion wirft.

+0

Können Sie Ihre Schienen-Version, Web-Server-Version und config/Anwendung. rb? – rootatdarkstar

+0

Auf dem Server: Rails 4.2.3, Ruby 2.2.1p85, Einhorn (4.9.0), Auf lokal: Rails 4.2.5, Ruby 2.2.1p85, WEBrick 1.3.1, In application.rb Datei habe ich this 'config.autoload_paths + = Dir [Rails.root.join ('app', 'controller', '{** /}')]' – Kumar

+0

Bitte lassen Sie mich wissen, was Sie von application.rb wissen müssen – Kumar

Antwort

0

Dies ist in den Schienen docs, speziell in Autoloading and Reloading Constants und Nesting abgedeckt.

Dies liegt daran, dass das Definieren der Verschachtelung auf zwei Arten erfolgen kann und sich hinsichtlich der Darstellung auf Schienen sehr unterscheidet. Sie können dies überprüfen, indem Module.nesting mit:

module Foo 
    class Bar 
    Module.nesting 
    end 
end 
=> [Foo::Bar, Foo] 

class Foo::Bar 
    Module.nesting 
end 
=> [Foo::Bar] 

Wenn Sie mehr wissen wollen, empfehle ich diese wirklich gute Blog-Post von Simon Coffey: Rails Autoloading Hell

Verwandte Themen