Rails を使い始めたのですが、ブロック操作で行き詰まっています。モデルをループし、2 つの日時フィールドの差を計算して新しいフィールドの整数値を更新したいと考えています。コンソールでこれを行う:
MyModel.all.each do |m|
m.new_integer_field = m.existing_datetime_field - m.parent_object.existing_datetime_field
m.save!
end
結果は
NoMethodError: undefined method `-' for nil:NilClass
次のようにすると、1 つのレコードで機能します。
m = MyModel.find(1)
m.new_integer_field = m.existing_datetime_field - m.parent_object.existing_datetime_field
m.save
基本的な構文だと思いますが、明確な説明が見つかりませんでした。いくつかの指針を前進させてくれてありがとう。