私のプロジェクトでは、名前、説明、内容、完成という 4 つの属性を持つモデルがあります。
保存前に空白かどうかを完了以外のすべての属性を確認したい。空白でない場合は、完了を 1 に設定し、それ以外の場合は 0 に設定します。
私は ActiveRecord と Mysql を使用しているため、id、created_at、updated_at 列も含まれます。
次のような before_save コールバックを書きました。
def check_completed
if self.attributes.except("id", "created_at", "updated_at").all? {|k, v| v.present?}
self.completed = 1
else
self.completed = 0
end
end
動作しますが、見た目が悪いです。except 関数呼び出しを削除したい。
これを行うより良い方法はありますか?