我在new
orders_controller
方法中有以下内容
@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
答案 0 :(得分:14)
您的代码中有拼写错误。您错过了:
:destroy
将第2行中的:dependent => destroy
更改为:dependent => :destroy
。它应该工作。
答案 1 :(得分:2)
order.rb
中的第一个声明应为:
has_many :line_items, :dependent => :destroy