我的代码在创建模型的新实例时自动创建类别。以下是其中一个模型的代码。
.encode('base64')
端
创建有效,但破坏给了我这个错误
class Grow < ActiveRecord::Base
belongs_to :category
after_create do
Category.create(name: self.title)
end
before_destroy do
Category.destroy(name: self.title)
end
关于如何解决这个问题的任何想法?
答案 0 :(得分:4)
试试这个:
Category.find_by(name: self.title).destroy
请记住,destroy会触发你触发的类别上的任何回调,但删除不会
这就是ActiveRecord(destroy)正在做的事情:
# File activerecord/lib/active_record/base.rb, line 2614
def destroy
unless new_record?
connection.delete(
"DELETE FROM #{self.class.quoted_table_name} " +
"WHERE #{connection.quote_column_name(self.class.primary_key)} = #{quoted_id}",
"#{self.class.name} Destroy"
)
end
@destroyed = true
freeze
end