我想将status
列更新为已付费,其中状态列=“已关闭”在我的Subscriptions
表中。
任何帮助表示赞赏
Subscriptions.where(:status =>'closed').update(:status => 'paid')
但没有工作
答案 0 :(得分:2)
<强>更新强>
尝试使用此代码:
Subscription.where(:status =>'closed').update_all(:status => 'paid')
OR
Subscription.where(status: 'closed').update_all(status: 'paid')
答案 1 :(得分:0)
我邀请您的模型为Subscription
但不是Subscriptions
因此你应该尝试
Subscription.where(status: 'closed').update_all(status: 'paid')
但不是
Subscriptions.where(status: 'closed').update_all(status: 'paid')
但是,如果您希望记录运行回调(例如:您设置了一些after_save
方法),则应使用以下脚本来唤起回调。
Subscription.where(status: 'closed').each{ |s| s.update(status: 'paid') }
希望这有帮助,谢谢。