2013-09-16 6 views
0

많은 프로젝트에서 activerecord로 작업하지만 이런 종류의 문제가 발생하지 않았습니다. 는 여기이activerecord : 값이 저장되지 않았습니다.

Ondon.create(:nr=>member.nr, 
       :dossier_nr=>dosnr, 
       :cre_dt=>Time.now, 
       :rowversion=>1, 
       :status=>4 
       ) 

같은 레코드를 생성하지만 상태를 삽입 된 값에 상관없이 내가 작성에 먹이를 어떤 값을 항상 0입니다 내 수업

class Ondon < ActiveRecord::Base 
    self.table_name = $rdms_3ondon_table 
    self.sequence_name = $rdms_3ondon_sequence 
end 

입니다. 다른 필드가 잘 삽입되었습니다.

디버거를 활성화하면 sql에 값 0이 삽입되어 있습니다.

상태는 어떤 종류의 예약어입니까? 불행히도이 필드의 이름을 변경할 수 없습니다. 누구에게이 제안/해결책이 있습니까?

+0

'status' 열의 유형은 무엇입니까? INT (정수) 유형이 아닌가요? – pdobb

+1

'$ rdms_3ondon_table'을 전역 변수로 선언하는 이유는 무엇입니까? 정말 이상합니다. – tadman

+0

상태 유형이 number이고 activerecord 클래스에서 구성 해시 @conf [ 'rdms_3ondon_table']을 사용할 수 없어 전역 변수를 사용하므로 전역 변수에 할당합니다 – peter

답변

0

발견. 오라클 테이블의 유형 번호가있는 필드 상태의 정밀도는 1이었습니다.이 경우 activerecords는 부울 필드 (0 = 거짓, 1 = 참)처럼 처리합니다. 4의 값은 무시되었습니다. 저는 정밀도를 6으로 올렸습니다 (그것에 대한 규칙을 모르는 것입니다). 그리고 이제 삽입물이 잘 작동합니다.

이것은 activerecord의 버그입니까? 나는 모른다.

관련 문제