2016-11-28 2 views
1

У меня возникли проблемы с моей маршрутизацией в приложении Rails. Я получаю эту ошибку, когда я пытаюсь перейти по ссылке к new_customer_path:Неинициализированная постоянная CustomerController - Rails

uninitialized constant CustomersController 

Это ссылка Я пытаюсь следовать. Он находится на «новой» странице моего контроллера видео. Вот соответствующая часть "новой" страницы:

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

контроллер Заказчик:

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 

Маршруты:

Rails.application.routes.draw do 
    resources :customers 

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

Клиент Модель:

class Customer < ApplicationRecord 
    has_many :rentals 
end 

Любые мысли/советы были бы очень признательны!

ответ

4

Может быть, вам не хватает s?

class CustomerController < ApplicationController должен быть class CustomersController < ApplicationController

рельсами конвенции по конфигурации, которая означает:

  • Модели единичны: Object
  • Контроллеры множественном ObjectsController

Это может быть изменено, если вы бы хотели, но я бы придерживался конвенции, если у вас нет разум.

+0

Это хорошая добыча! К сожалению, это не определило более широкую проблему. Теперь я получаю это вместо «uninitialized constant CustomersController» –

+5

Вы переименовали контроллер, но не файл, в котором он находится? –

+1

В этом была проблема. Спасибо вам обоим! –

Смежные вопросы