我遇到了方法定義的問題。我有這樣的代碼在我的 「買」 的模式:奇怪錯誤的參數數量(1代表0)錯誤?
def update_amount newamount
self.total_amount = self.total_amount +newamount
end
,並在其他地方這個代碼:
buy.update_amount(amount)
如果我運行該程序,我得到這個錯誤:
ArgumentError (wrong number of arguments (1 for 0)):
app/models/buy.rb:18:in `update_amount'
現在,如果我改變這個(只是試試):
buy.update_amount
我得到這個錯誤:
ArgumentError (wrong number of arguments (0 for 1)):
app/models/buy.rb:18:in `update_amount'
我是新的Ruby on Rails,所以它可能是一件容易的事。
謝謝!有效!我會在10分鐘內給你正確的答案 – DemianArdus
這很奇怪。我沒有看到與原始代碼和此代碼的任何區別。它沒有解釋OP正在得到的錯誤。 – jvnill
是的。看看toro2k的答案。它解釋了OP爲什麼會得到「錯誤的參數數量(1代表0)」錯誤。在其他編程語言中,操作符之間沒有空格是好的,所以原始代碼與您的答案相同。它恰好發生了,ruby將'total_amount'解釋爲一種方法。 – jvnill