4

私は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) )これは壊れます)。私は基本的に、arel および to_sql 機能に繰り返される update_all 呼び出し内でそのコード ブロックを実行しようとしています。これは可能ですか?

4

2 に答える 2

1

に渡すだけnilですeq

table[attr].eq(nil)

生成するwhere attr is not null

于 2021-12-06T15:32:51.063 に答える