我有一个名为" Provision"用表名"条款"。此模型在数据库中具有默认值的属性,因为我不知道如何通过ActiveRecord 设置值。
但是最大的问题是当数据库上的默认值为null并且我需要使用数据库函数,例如" GETDATE()"在RoR层。
我的背心错了吗?
答案 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