Rails new - 错误的参数个数(0表示1)

jos*_*im5 3 ruby arguments controller ruby-on-rails new-operator

我在一个new方法中有以下内容orders_controller

@order = Order.new
Run Code Online (Sandbox Code Playgroud)

Rails给我以下错误:

wrong number of arguments (0 for 1)

app/models/order.rb:2:in `<class:Order>'
app/models/order.rb:1:in `<top (required)>'
app/controllers/orders_controller.rb:33:in `new'
Run Code Online (Sandbox Code Playgroud)

我正在使用Rails 3.0.5

谢谢!

编辑:order.rb可以在下面找到

class Order < ActiveRecord::Base
  has_many :line_items, :dependent => destroy

  PAYMENT_TYPES = [ "Check", "Credit card", "Purchase order" ]

  validates :name, :address, :email, :pay_type, :presence => true
  validates :pay_type, :inclusion => PAYMENT_TYPES

  def add_line_items_from_cart(cart)
    cart.line_items.each do |item|
      item.cart_id = nil
      line_items << item
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

rub*_*nce 14

您的代码中有拼写错误.你错过了::destroy

:dependent => destroy第2行更改为:dependent => :destroy.它应该工作.

  • @ joshim5 ..我在你发布之前发布了我的答案...检查发布的时间..这不是转发..实际上它是urs,这是转贴;) (2认同)