Array.delete(object)从数据库中删除了吗?

所以我试图获得一系列不包含@post的post。 令我惊讶的是,下面的代码导致@post从数据库中删除!

@post = Post.find(2) @posts = Post.where(:text => "title") @posts.delete(@post) 

为什么Array函数会从数据库中删除@post? Rails是否会扩展或覆盖此function? 我以为只有.destroy函数可以从数据库中删除对象? 我想我对.where函数返回的确切内容以及使用@而不使用@用于变量的后果感到困惑。

提前致谢!

Post.where(:text => 'title')之后存储在@posts内容不是数组。 它是一种ActiveRecord::Relation对象。

当您使用@post作为参数调用delete时,您告诉Rails从数据库中删除该对象。