2012-03-22 4 views
1

'student'라는 테이블에 값을 추가하는 학생 세부 정보를 입력하는 양식이 있습니다.activerecord : 데이터베이스 기본값 적용되지 않음

이 테이블에는 데이터베이스 기본값이있는 'ctime'이라는 열이 있습니다.

열 구조

ctime이 | 시간대가없는 타임 스탬프 | not null default now() 그래서 새로운 학생을 추가하는 동안 양식의 ctime 열에 값을주지 않았지만 "PG :: Error : ERROR : 열의 null 값"이라는 오류가 발생했습니다. "null이 아닌 제약 조건을 위반합니다."

제 질문은 데이터베이스에 기본값이 있어도 오류가 발생하는 이유입니다.

친절하게 도와주세요.

미리 감사드립니다.

답변

0

테이블 스키마에 일부 정적 기본값이있는 열을 정의한 경우 AR 인스턴스의 해당 속성은 인스턴스가 만들어진 후 자동으로 해당 값을 갖습니다. 기본값을 적절하게 지정했는지 확인하십시오.

당신은 마이그레이션의 열의 기본 옵션을 설정할 수 있습니다 또는 당신은 콜백을 사용할 수 before_save

class Model < ActiveRecord::Base 
    before_save :default_values 
    def default_values 
    self.status ||= 'value' 
    end 
end 

또는 심지어 기본 값을 설정하는 after_initialize 방법을 사용할 수 있습니다.

관련 문제