Array.delete(对象)从数据库中删除?

时间:2013-02-02 23:59:43

标签: ruby-on-rails ruby

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

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

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

提前致谢!

1 个答案:

答案 0 :(得分:6)

执行@postsPost.where(:text => 'title')中存储的内容不是数组。这是一种ActiveRecord::Relation对象。

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