어떻게 날짜를 설정 하시겠습니까? 그것은 @user.birthday = params[:birthday]
과 같은가요? 이것은 날짜가 아니기 때문에 문제가 발생할 것입니다. 문자열이고, 데이터베이스가 날짜를 저장하는 방식과 다른 형식의 문자열입니다.
당신은 두 가지 옵션이있어 :
A) 이상적으로 당신이 날짜로 입력을 변환해야하고 실제 날짜 객체를 사용하여 필드를 설정합니다.
B) 매개 변수 형식이 DB 저장 날짜 (일치하는 "yyyy-mm-dd")와 일치하는지 확인하십시오.
가 바람직하다. 가능한 한 유용하게 날짜를 처리하도록 User # birthday = 메서드를 재정의합니다. 예 :
#in User model
def birthday=(arg)
if arg.is_a?(Date)
self[:birthday] = arg
elsif arg =~ /\d+\/\d+\/\d+/
self[:birthday] = Date.strptime(arg, "%d/%m/%y")
elsif arg =~ /\d+\-\d+\-\d+/
self[:birthday] = Date.strptime(arg, "%y/%m/%d")
else
self[:birthday] = arg
end
end
보통 '문자열'이 아닌 '날짜'또는 '시간'(또는 '날짜 시간')을 제출해야합니다. – mhutter
@Manuel 그래서 "1/1/1"은 "1/1/15"가 작동하지 않을 때 어떻게 작동합니까? –
나는 아이디어가 없다. 아마 이것은 당신이 사용하고있는 DB와 관련이 있습니다. 그래서 Date를 제출해야합니다. 아래 맥스 윌리엄의 대답을 참조하십시오. – mhutter