Category.destroy_all
要么
Post.destroy_all
如何截断categories_post表?
ActiveRecord::Base.connection.execute("TRUNCATE TABLE #{table_name}")
您使用模型的示例未执行真正的TRUNCATE查询.
> destroy_all不会截断表.它“通过实例化每条记录并调用其destroy方法来破坏记录匹配条件”(link).> delete_all更接近 – 它忽略了回调 – 但仍然不是TRUNCATE.
使用execute方法从数据库中删除行而不创建任何模型实例.
此外,实际的TRUNCATE查询(至少在MysqL中)将重置主键的自动增量,以便您插入的下一条记录的id为1.