activerecord を使用して hstore 列で複数のレコードを更新する良い方法は何ですか? 現在、次のようにループ、更新、保存しています。
time = Time.now.to_s
scoped_tasks.each do |task|
task.data[:last_checked] = time
task.save!
end
update_all
クエリでこれを行う方法はありますか? 私が見た1つの解決策は次のようになります。
MyModel.update_all(:properties => ActiveRecord::Coders::Hstore.dump({'a' => 1}))
しかし、それに関する問題は、列全体を上書きするため、他の値が失われることです。私もこれを見ました:
MyModel.update_all("data = data || hstore('a', 'blah')")
しかし、何らかの理由で私はその価値を取り戻し0
ます。また、hstore が空の場合にのみ機能するようです。