【发布时间】:2011-11-08 13:16:27
【问题描述】:
我在orders_controller 的new 方法中有以下内容
@order = Order.new
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'
我正在使用 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
【问题讨论】:
-
您可以发布您的
order.rb文件吗? -
显示您的 Order 类源代码,其中可能定义了一个新的或初始化方法。
-
Ruby 错误实际上非常具有描述性。您没有向构造函数提供任何参数,而至少需要一个参数。如果您将源发布到 orders.rb,我们可以帮助确定所需的参数应该是什么。
-
我把源码发布到了order.rb!
标签: ruby-on-rails ruby controller arguments new-operator