如何在rails上更新activerecord中的特定列?

use*_*036 6 activerecord ruby-on-rails

我有一个名为Agency的模型

代理活动记录中的一行如下所示:

#<Agency id: 1, name: "Hello", contact_person: "Abhimanyu", phone_number: "946159", email: "Abhimanyu@purple.com ", local_package: false, outstation: true, remarks: nil, status: 1>
Run Code Online (Sandbox Code Playgroud)

在这里,我想改变的价值status0。我怎样才能做到这一点 ?

Son*_*mar 11

Rails 提供了许多更新活动记录的方法。您可以从此博客中获得每种方法的差异

agency = Agency.find(1)
Run Code Online (Sandbox Code Playgroud)
  1. 更新

    agency.update(status: 0)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 更新属性

    agency.update_attribute(:status, 0)
    
    Run Code Online (Sandbox Code Playgroud)
  3. 更新列

    agency.update_column(:status, 0)
    
    Run Code Online (Sandbox Code Playgroud)
  4. 更新列

    agency.update_columns(status: 0)
    
    Run Code Online (Sandbox Code Playgroud)


小智 5

你也可以用这个

Agency.find(1).update_column(:status, 0)