0

我有一个通过控制器获得的变量。我想检查数据库中是否有包含该变量值的记录。如果有,则删除该记录。在我的用户模型中有一个“数字”属性,它是一个字符串。这是我的控制器中的伪代码的样子:

from_number = params["From"]

if @user.number == from_number
   # find a record in the DB with that value and delete it
   User.find(from_number)
   @user.destroy
else
   puts "don't delete DB record"
end

我可以在控制器中执行此操作还是应该在模型中执行此操作?如果应该在模型中完成,如何将 from_number 传递给模型进行处理?

谢谢!

4

2 回答 2

0

如果某些属性具有特定值,则删除具有特定 id 的用户可以按如下方式完成。

User.where(value: 'something').delete_all

请注意,这不会实例化模型,因此不会触发回调。

我不确定这是否是您想要的,因为您的代码片段有点令人困惑,因为您已经拥有用户,再次检索它只是为了销毁它。

于 2012-11-16T13:45:59.447 回答
0

使用下面给出的代码,它将删除数据库中的现有用户并调用此实例上的所有回调

User.where(number: params["From"]).first.try(:destroy)

所以不需要写“if else”。并且此代码应仅放在控制器中。

于 2012-11-16T13:53:45.577 回答