2010-02-22 3 views
1

У меня есть сценарий, в котором я пытаюсь сделать доказательство концепции с использованием Rails в старой базе данных db2, чтобы получить откуп, что это жизнеспособная платформа для использования нами для текущей и будущей разработки.Поддерживает ли ActiveRecord пользовательские типы?

Все наши таблицы имеют первичный ключ, который определяется как char для битовых данных, который является двоичным. Можно ли каким-либо образом определить преобразователь для преобразования этих данных в/из строки?

Я рубин/рельсы newb, так что это может быть простой вопрос для ответа, я просто не смог его найти.

ответ

1

Переопределите сеттер и геттер для атрибута.

# 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

Смежные вопросы