我在使用Rails破坏对象时遇到问题(使用Rails 4.2.3)。以下代码中的这一行
user_my_object_time_match.destroy
失败并显示错误
wrong number of arguments (given 0, expected 1)
如果重要的话,这将在另一个模型的交易中被删除。以下是周围的交易
def delete_my_object_and_any_matching_records
transaction do
linked_my_object = self.linked_my_object
if destroy
if !linked_my_object.nil?
user_my_object_time_match = UserMyObjectTimeMatch.joins(:my_object_time).where("my_object_time_id = ?", linked_my_object.my_object_times[0])
if !user_my_object_time_match.nil?
user_my_object_time_match.destroy
答案 0 :(得分:0)
如果要销毁ActiveRecord Relation(对象集合),请使用destroy_all
。 destroy
仅用于id
销毁单个对象或对象列表。
此处有更多信息http://apidock.com/rails/ActiveRecord/Relation/destroy_all和http://apidock.com/rails/v4.2.1/ActiveRecord/Relation/destroy。
它们相似但略有不同。另请注意,delete
和delete_all
比destroy
对应者快,但不会调用回调。