如何从表中更新状态字段

时间:2015-11-27 08:57:44

标签: ruby-on-rails

我想将status列更新为已付费,其中状态列=“已关闭”在我的Subscriptions表中。 任何帮助表示赞赏

我试过这样的 Subscriptions.where(:status =>'closed').update(:status => 'paid') 但没有工作

2 个答案:

答案 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') }

希望这有帮助,谢谢。