将列添加到现有数据库?

时间:2011-12-13 19:59:15

标签: ruby-on-rails postgresql views

我正在使用rails 3.1.3,postgreql9.1和ruby 1.9.3。

我想在现有数据库中添加一个列,它实际上是两个现有列的串联,即; first_name和last_name。

如何做到这一点?

我想要全名的原因是,当需要显示员工时,我想显示全名,但我需要将名称分成两部分以用于其他功能。

此问题的另一部分是,虽然我只希望员工的姓名显示在报告上,但我还希望员工的电子邮件和主要职位显示,然后有一个名为info的链接,点击后将给出员工详细报告,显示员工表中的所有属性。

到目前为止,我有一个基本的员工页面。

任何读者都有耐心和意愿分享关于如何完成这项任务的指导,指导和建议?

谢谢,

汤姆。

3 个答案:

答案 0 :(得分:1)

如果您需要在数据库中创建真实字段,可以使用migrations

但在这种情况下,您可以使用virtiual属性:

在模型中创建两个方法:

def full_name
   [first_name, last_name].joun(' ')
end

def full_name=(name)
    split = name.split(' ', 2)
    self.first_name = split.first
    self.last_name = split.last
end  

并添加到您的视图中:

<p> Full name </p>  
<%= f.text_field :full_name %>

答案 1 :(得分:0)

难道你不能只连接你的观点中的名字吗?

没有必要以这种方式复制数据库数据。

答案 2 :(得分:0)

虽然您可以在不编辑db结构的情况下解决此问题,但您可以创建新的db col,并且可能需要在将来编辑db结构。

尝试此页面,您的数据库类型的管理工具 http://en.wikipedia.org/wiki/PostgreSQL#Database_administration

这个看起来很合适。

pgAdmin的

“pgAdmin pakage是PostgreSQL的免费开源图形用户界面管理工具,在许多计算机平台上都受到支持”。

为一个男人钓鱼,他吃了一天。教一个人钓鱼,他吃了一辈子。