RoR ActiveRecord模型层上的数据库函数

时间:2014-12-12 12:52:17

标签: ruby-on-rails ruby database activerecord orm

我有一个名为" Provision"用表名"条款"。此模型在数据库中具有默认值的属性,因为我不知道如何通过ActiveRecord 设置值。

但是最大的问题是当数据库上的默认值为null并且我需要使用数据库函数,例如" GETDATE()"在RoR层。

我的背心错了吗?

1 个答案:

答案 0 :(得分:0)

如果您的问题与查询有关,那么操纵ActiveRecord::Base对象将无济于事。您始终可以使用ActiveRecord::Base.connection('SQL STRING')执行自定义SQL。

修改

似乎你想在服务器上运行它:UPDATE provinsions SET provisioned_at = GETDATE() WHERE id = ?。那么使用ActiveRecord是件小事,您可以参考the docs

# if you don't already have an AR::Base class with the same name (singularized) as your db table create it
class Provision < ActiveRecord::Base
  # this is not necessary, it specifies the db table name 
  # that AR already inferred from the class name
  self.table_name = 'provisions'
end

Provision.where(provisioned_at: nil).update_all provisioned_at: Time.zone.now