获得"错误的参数数量(给定0,预期1)"当试图摧毁一个物体

时间:2016-06-17 01:37:55

标签: ruby-on-rails-4 model destroy

我在使用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 

1 个答案:

答案 0 :(得分:0)

如果要销毁ActiveRecord Relation(对象集合),请使用destroy_alldestroy仅用于id销毁单个对象或对象列表。

此处有更多信息http://apidock.com/rails/ActiveRecord/Relation/destroy_allhttp://apidock.com/rails/v4.2.1/ActiveRecord/Relation/destroy

它们相似但略有不同。另请注意,deletedelete_alldestroy对应者快,但不会调用回调。