モデルに日付(実際にDATEタイプを持つ)を検証したいと思います。だから、私はそのsimleメソッドのために書き込みを試み、検証によって実行します。Rails 3 - 日付のタイプをチェックするためのカスタム検証
Teacher
class Teacher < ActiveRecord::Base
attr_accessible :teacher_birthday # DATE type!
belongs_to :user
validates :teacher_birthday, :presence => true,
:unless => :date_is_correct?
########
def date_is_correct?
parsed_data = Date._parse(:teacher_birthday)
input_day = parsed_data[:mday]
input_month = parsed_data[:mon]
input_year = parsed_data[:year]
correct_days = 1..31
correct_months = 1..12
correct_year = 1900..2000
if (correct_days.member? input_day) and (correct_months.member? input_month) and
(correct_year.member? input_year)
true
else
errors.add(:teacher_birthday, 'date is invalid')
false
end
end
私がrspecを実行すると、多くのテストが失敗します。
TypeError: can't convert Symbol into String
# ./app/models/teacher.rb:56:in `_parse'
# ./app/models/teacher.rb:56:in `date_is_correct?'
私は何かが間違っていると思います。誰かが間違っていることを教えてくれますか?
エラーメッセージは何ですか? – awendt
'Date._parse(:teacher_birthday)'はなぜ期待されますか? –
なぜですか?私をより良い方法でお勧めしてください! – ExiRe