2016-11-28 91 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

這是問題。謝謝你們倆! –