【发布时间】:2012-10-15 13:50:30
【问题描述】:
我对 arel 有疑问:我想使用 Arel 强制执行类似“attr = NULL”的操作。 Arel 允许我做这样的事情:
table = obj.arel_table # obj has attr
table[:attr].eq(nil) # returns ''objs'.'attr' IS NULL'
这是公平的,因为在查询中这是正确的做法。但是在更新时,我希望能够将某些内容设置为 NULL,并且最好不必自己编写 SQL(AR 中的 update_all 不支持集合上的类似 ARel 的功能:objs.things.update_all(:created_at => nil )。这打破了)。我基本上是在尝试在 update_all 调用中重复执行 arel 和 to_sql 功能的代码块。这可能吗?
【问题讨论】:
-
您确定 created_at 列允许空值吗?你的例子到底是怎么破的?
标签: sql ruby-on-rails-3 activerecord arel