2010-02-22 6 views
1

필자는 레거시 DB2 데이터베이스에서 Rails를 사용하여 현재 및 미래 개발에 사용할 수있는 실행 가능 옵션 플랫폼임을 입증하는 시나리오를 작성했습니다.ActiveRecord는 사용자 정의 유형을 허용합니까?

모든 테이블의 기본 키는 비트 데이터의 char로 정의되며 바이너리입니다. 해당 데이터를 문자열로 /에서 변환 할 수있는 mapper를 정의 할 수있는 방법이 있습니까?

저는 루비/레일 newb입니다. 그래서 대답하기 쉬운 질문 일 수 있습니다. 나는 그것을 찾을 수 없었습니다.

답변

1

속성에 대한 setter 및 getter를 재정의하십시오.

# Assumption: 
# 1. UUID is a BINARY column in your DB2 table. 
# 2. UUID column should be handled as a string 
# 
class User < ActiveRecord::Base 

    def UUID 
    convert_to_str(attributes['UUID']) 
    end 

    def UUID=(str) 
    attributes['UUID'] = convert_to_bin(str) 
    end 

    def convert_to_str bin 
    # custom conversion 
    end 

    def convert_to_bin str 
    # custom conversion 
    end 
end 
+0

귀하의 가정 사항이 정확합니다. 나는 이것을 줄 것이다. 귀하의 의견에 감사드립니다. – jridley

+0

UUID = (str)이 변환되지 않은 문자열을 반환하지 않아야합니까? 의미 : "str"을 읽는 두 번째 줄을 삽입하십시오. – hurikhan77

관련 문제