我有一个通过我的控制器获得的变量。我想检查并查看数据库中是否有该变量值的记录。如果有,则删除该记录。在我的用户模型中,有一个'number'属性是一个字符串。以下是我的控制器中的伪代码:
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传递给要处理的模型?
谢谢!
答案 0 :(得分:0)
如果某个属性具有特定值,则删除具有特定ID的用户可以按如下方式完成。
User.where(value: 'something').delete_all
请注意,这不会实例化模型,因此不会触发回调。
我不确定这是否是你想要的,因为你的片段有点混乱,因为你已经有了用户,再次检索它只是为了销毁它。
答案 1 :(得分:0)
使用下面给出的代码,它将删除数据库中的现有用户并调用此实例上的所有回调
User.where(number: params["From"]).first.try(:destroy)
所以不需要写“if else”。此代码应仅放在控制器中。