我对 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 功能的代码块。这可能吗?