2016-11-28 1 views
1

Ich habe Probleme mit meinem Routing in einer Rails App. Ich bekomme diese Fehlermeldung, wenn ich versuche, einen Link zu dem new_customer_path zu folgen:nicht initialisierte Konstante CustomersController - Rails

uninitialized constant CustomersController 

Dies ist die Verbindung, die ich zu folgen versuchen. Es ist auf der "neuen" Seite für meinen Movies Controller. Hier ist der relevante Teil der "neuen" Seite:

<div class="row"> 
<div class="col-xs-12"> 
    <hr /> 
    <%= link_to "Add Customer", new_customer_path, class: 'white' %> 
</div> 
</div> 

Kunden Controller:

class CustomerController < ApplicationController 
    def new 
    @customer = Customer.new 
    end 

    def create 
    @customer = Customer.new(customer_params) 
    if @customer.save 
     redirect_to new_customer_path 
    end 
    end 

    private 

    def customer_params 
    params.require(:customer).permit(:fname, :lname, :telephone, :email) 
    end 

end 

Routen:

Rails.application.routes.draw do 
    resources :customers 

    resources :movies do 
    resources :rentals 
    end 
    root 'movies#new' 
end 

Kunden Modell:

class Customer < ApplicationRecord 
    has_many :rentals 
end 

Irgendwelche Gedanken/Tipps würden sehr geschätzt werden!

Antwort

4

Könnte es sein, dass Sie eine s verpassen?

class CustomerController < ApplicationController sollte class CustomersController < ApplicationController

Rails sein wird Konvention über Konfiguration, was bedeutet:

  • Models sind singuläre: Object
  • Controller sind mehrere: ObjectsController

Dies kann geändert werden, wenn du würdest gerne, aber ich würde mit Konvention bleiben, es sei denn du hast ag ood Grund.

+0

Das ist ein guter Fang! Leider hat es das größere Problem nicht behoben. Jetzt bekomme ich diese stattdessen "nicht initialisierte Konstante CustomersController" –

+5

Haben Sie den Controller umbenannt, aber nicht die Datei, in der er sich befindet? –

+1

Das war das Problem. Danke euch beiden! –

Verwandte Themen