application_helperにヘルパーを作成しました:
def birthday(geburt)
f = Date.today
a = f.year - geburt.year
a = a - 1 if (
geburt.month > f.month or
(geburt.month >= f.month and geburt.day > f.day)
)
a
end
今、モデルでこのヘルパーを使用してみます:
patients = patients.where("birthday(geburtsdatum) >= ?", minimum) if minimum.present?
しかし、エラーでどのように確認できるか、ヘルパーを正しく使用していません。「geburtsdatum」は、私の患者モデルの列です。エラー:
SQLite3::SQLException: no such function: birthday: SELECT "patients".* FROM "patients" WHERE (birthday(geburtsdatum) >= 15) ORDER BY vorname
私の新しいコード:
def find_patients
patients = Patient.order(:vorname)
patients = patients.where("nachname like ?", "%#{keyword}%") if keyword.present?
patients = patients.where("#{geburtsdatum.get_birthday} >= ?", minimum) if minimum.present?
patients
end
私の新しいエラー:
undefined local variable or method `geburtsdatum' for #<Search:0x4ee51b8>