在我的訂單模型中,我有下面的回調。一切正常,直到最後一行,我嘗試更新1 invoice屬性並觸發發票模型中的after_update回調,但是當我使用.update()方法時,我收到錯誤數量的參數(0代表1)。.update in model - 參數數量錯誤(0表示1)
def update_invoice # self = order
...
invoice = Invoice.find_or_create_by(job_id: job.id, start_string: start_string, end_string: end_string, client_id: client.id, start_date: start_date, end_date: end_date)
self.update_column(:invoice_id, invoice.id)
statement_start_date = start_date.beginning_of_month
statement_end_date = end_date.end_of_month
statement = Statement.find_or_create_by(start_date: statement_start_date, end_date: statement_end_date, client_id: client.id)
self.update_column(:statement_id, statement.id)
invoice.update(statement_id: statement.id) # wrong number of arguments (0 for 1) error
end
下面的作品作爲一個變通:
invoice.update_column(:statement_id, statement.id)
invoice.save
爲什麼第一種方法行不通像我預料到?謝謝!
感謝更新時使用
update_column
因爲validations
和callbacks
將被跳過,這個工作。我在我的應用程序中使用了相同的語法(更新變量,而不是類),它的工作。任何想法爲什麼會是這樣? – avalente1