save
一般に、 ActiveRecord を使用する場合は常に の戻り値をチェックする必要がありますか?
たとえば、次のようなコードに出くわしました。
def foo(active_record_instance)
active_record_instance.field_1 = 'a'
active_record_instance.field_2 = 'b'
# ...15 more lines...
active_record_instance.save # <==
baz = bar(active_record_instance.id)
# ...15 more lines that use baz...
baz
end
def bar(id)
instance = ActiveRecordSubclass.find(id)
instance.field_3 = instance.field_1 + instance.field_2
instance
end
これは少し不自然ですが、私が取り組んでいるコードベースのかなり現実的な例です。(これは、このパターンの孤立したケースではありません。)
の検証ActiveRecordSubclass
は流動的であり、近い将来 (または今から 1 年後) に変更される可能性があることを考えると、 の戻り値をactive_record_instance.save
チェックする必要があると思います。別の方法として、 を使用することもできますactive_record_instance.save!
。
レコードが保存されているかどうかを確認するのは適切ですか? それともfoo
、現在の検証が失敗しないことを考えると、メソッドは問題にすべきではない何かを細かく管理していますか?