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从数据库中删除该对象。