【问题标题】:Getting "wrong number of arguments (given 0, expected 1)" when trying to destroy an object尝试销毁对象时获得“错误数量的参数(给定 0,预期为 1)”
【发布时间】:2016-10-18 17:12:06
【问题描述】:

我无法在 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 

【问题讨论】:

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


    【解决方案1】:

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

    更多信息在这里http://apidock.com/rails/ActiveRecord/Relation/destroy_allhttp://apidock.com/rails/v4.2.1/ActiveRecord/Relation/destroy

    它们相似,但有细微的不同。另请记住,deletedelete_alldestroy 对应物更快,但不调用回调。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多