2016-11-28 81 views
1

我在Rails应用程序中遇到了路由问题。当我尝试按照链接指向new_customer_path时,出现此错误:未初始化的常量CustomersController - 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 < ApplicationControllerclass CustomersController < ApplicationController

滑轨被配置约定这意味着:

  • 模型是独特的:Object
  • 控制器是复数:ObjectsController

这可以如果被改变你会喜欢,但我会坚持惯例,除非你有公司原因。

+0

这是个好主意!不幸的是,它没有解决更广泛的问题。现在我得到这个,而不是“初始化常量CustomersController” –

+5

你重命名控制器,但不是它驻留的文件? –

+1

这是问题。谢谢你们俩! –