2011-09-01 83 views
3

我已經在一個orders_controllerRails的新 - 錯誤的參數數目(0 1)

@order = Order.new 

的Rails的new方法中以下給了我以下錯誤:

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 
+1

您可以發佈您'order.rb'文件? –

+1

顯示您的訂單類的來源,可能有一個新的或初始化的方法定義在那裏。 –

+0

Ruby錯誤實際上非常具有描述性。您至少需要一個參數,而不向構造函數提供參數。如果將源發佈到orders.rb,我們可以幫助確定所需的參數應該是什麼。 – peakxu

回答

14

發現你在你的代碼中的錯字。您錯過了:中的:destroy

:dependent => destroy更改爲第2行至:dependent => :destroy。它應該工作。

+0

這就是我剛剛寫的...沒有必要respost答案 – joshim5

+2

@ joshim5 ..我張貼我的回答之前,張貼...檢查張貼的時間..它不是一個repost ..事實上它是urs是一個轉貼;) – rubyprince

+0

這是不正確的。我在你的2分鐘之前發佈了我的。 – joshim5

2

order.rb第一個聲明應改爲:

has_many :line_items, :dependent => :destroy 
相關問題