Изменение типа Класса ActiveRecord в направляющих с Единственным Наследованием Таблицы

У меня есть два типа классов:

BaseUser < ActiveRecord::Base 

и

User < BaseUser

какой acts_as_authentic с помощью системы аутентификации Authlogic. Это наследование реализовано с помощью Единственного Наследования Таблицы

Если новый пользователь регистрируется, я регистрирую его как Пользователя. Однако, если бы у меня уже есть BaseUser с той же электронной почтой, я хотел бы изменить тот BaseUser на Пользователя в базе данных, просто не копируя все данные в Пользователя от BaseUser и создавая нового Пользователя (т.е. с новым идентификатором). Действительно ли это возможно?Спасибо.

25
задан Wei 16 July 2010 в 06:28
поделиться

1 ответ

Вы можете просто установить в поле типа значение «Пользователь» и сохранить запись. Объект в памяти по-прежнему будет отображаться как BaseUser, но в следующий раз, когда вы перезагрузите объект в памяти, он будет пользователем

>> b=BaseUser.new
>> b.class # = BaseUser

# Set the Type. In-Memory object is still a BaseUser
>> b.type='User'
>> b.class # = BaseUser
>> b.save

# Retrieve the records through both models (Each has the same class)

>> User.find(1).class # = User
>> BaseUser.find(1).class # User
17
ответ дан 28 November 2019 в 17:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: