我正在尝试将属性标志设置为 false,如下所示:
Model.where(:s_id => s_id).flag = false
(我有 s_id)但它没有用,这个也没有用:
Model.find(s_id).flag = false
有什么帮助吗??
我正在尝试将属性标志设置为 false,如下所示:
Model.where(:s_id => s_id).flag = false
(我有 s_id)但它没有用,这个也没有用:
Model.find(s_id).flag = false
有什么帮助吗??
您的代码的问题是您更改了flag
属性,但之后没有保存文档。有很多不同的方法可以处理这个问题,其中大部分在文档的持久性部分中有详细说明。
如果您只更新一个模型,并且您有 ID,则可以使用以下update_attribute
方法:
Model.find(id).update_attribute(:flag, false)
该update_attribute
方法更新属性(显然),但随后也调用save
文档,将更改保存在数据库中。您可以通过以下方式长期实现这一目标:
m = Model.find(id)
m.flag = false
m.save
或者,如果您想从标准(如where
方法)更新一组模型,您可以使用update_all
:
Model.where(:flag => true).update_all(:flag => false)