所以我试图获得一系列不包含@post的帖子。令我惊讶的是,下面的代码导致@post从数据库中删除!
@post = Post.find(2)
@posts = Post.where(:text => "title")
@posts.delete(@post)
为什么Array函数会从数据库中删除@post? Rails是否扩展或覆盖此功能?我以为只有.destroy函数可以从数据库中删除对象?我想我对.where函数返回的确切内容以及使用@并且不使用@用于变量的后果感到困惑。
提前致谢!
答案 0 :(得分:6)
执行@posts
后Post.where(:text => 'title')
中存储的内容不是数组。这是一种ActiveRecord::Relation
对象。
当您使用@post
作为参数调用delete时,您告诉Rails从数据库中删除该对象。