0

私のプロジェクトでは、名前、説明、内容、完成という 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 関数呼び出しを削除したい。

これを行うより良い方法はありますか?

4

2 に答える 2