逻辑上在rails中交换db列的名称

时间:2013-09-18 06:13:03

标签: ruby-on-rails ruby ruby-on-rails-4

我有表格管理员。其中有两列'用户名'和'电子邮件'。由于早期的应用程序是在PHP中,错误地电子邮件用于存储电子邮件的用户名和用户名。 现在我们已经在rails中迁移了较小的应用程序部分,我想要的是在rails模型中进行一些更改,以便用户名指向电子邮件和电子邮件指向用户名。我不能重命名db中的列,因为它会破坏app的php端。

这可以在铁轨中使用吗?

1 个答案:

答案 0 :(得分:1)

您可以创建虚拟属性来设置\ get usernameemail字段,并定义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