Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未初始化的常量OrdersController_Ruby On Rails_Ruby_Uninitialized Constant - Fatal编程技术网

Ruby on rails 未初始化的常量OrdersController

Ruby on rails 未初始化的常量OrdersController,ruby-on-rails,ruby,uninitialized-constant,Ruby On Rails,Ruby,Uninitialized Constant,我有一个订单控制器和一个像这样的*订单模型;- class OrderController < ApplicationController def new @cart=current_cart if @cart.items.empty? flash[:error]="Your cart is empty" redirect_to :back return end @order=Order.new end

我有一个订单控制器和一个像这样的*订单模型;-

class OrderController < ApplicationController

def new
    @cart=current_cart
    if @cart.items.empty?
        flash[:error]="Your cart is empty"
        redirect_to :back
        return
    end

    @order=Order.new

end

def create
    @order=Order.new
end

end  
以及new.html.erb

<%= simple_form_for(@order, html: {class: 'form-horizontal control-group '}) do |f| %>   
<%= f.button :submit, "Place Order", class: "btn btn-large btn-primary" %>
<% end %>  

我在表单中还有其他字段

但当我提交表单时,它会抛出错误

未初始化的常量OrdersController


怎么了?

您的控制器名称是
OrderController
(单数),错误是无法找到
OrderController
(复数)。您还指定了路由中必须与控制器名称匹配的
resources:orders
(复数)


将控制器重命名为
OrdersController
;这遵循了Rails的复数控制器名称惯例。

但我为什么需要它呢?我已经用rails g控制器顺序方法创建了控制器,那么新动作将不会呈现。它以简单的形式给出了未定义的方法“orders\u path”。我认为最好还是坚持rails惯例,而不是使用
rails g controller orders
生成一个新的控制器,这样您就不必在许多不同的地方更改代码。
<%= simple_form_for(@order, html: {class: 'form-horizontal control-group '}) do |f| %>   
<%= f.button :submit, "Place Order", class: "btn btn-large btn-primary" %>
<% end %>