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 %>