我有一个表 admin。其中有两列'username' 和 'email'。由于早期的应用程序在 php 中,因此错误地使用电子邮件来存储电子邮件的用户名和用户名。现在我们已经在 Rails 中迁移了一小部分应用程序,我想要对Rails 模型进行一些更改,以便username 指向 email 并且 email 指向 username。我无法重命名 db 中的列,因为它会破坏应用程序的 php 端。
这在rails中可能吗?
我有一个表 admin。其中有两列'username' 和 'email'。由于早期的应用程序在 php 中,因此错误地使用电子邮件来存储电子邮件的用户名和用户名。现在我们已经在 Rails 中迁移了一小部分应用程序,我想要对Rails 模型进行一些更改,以便username 指向 email 并且 email 指向 username。我无法重命名 db 中的列,因为它会破坏应用程序的 php 端。
这在rails中可能吗?
您可以为 set\getusername
和 andemail
字段创建虚拟属性,并定义 getter 和 setter 方法。可以在此处找到一些示例:
http://railscasts.com/episodes/16-virtual-attributes?view=asciicast
UPD:一些代码
class User < ActiveRecord::Base
def username
self.email
end
def username=(name)
self.email=name
name
end
end