2011-12-13 119 views
0

我使用rails 3.1.3,postgreql9.1和ruby 1.9.3。将列添加到现有数据库?

我想添加一个列到现有的数据库,这是真正的两个现有列的连接,即; first_name和last_name。

怎么去做这件事?

我想要全名的原因是,当它显示员工时,我想只显示全名,但我需要将名称拆分为其他功能的两个部分。

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

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

任何读者都有耐心和意愿分享一些指导,指导和或建议如何去完成这项任务?

谢谢,

汤姆。

+0

select first_name || ''|| last_name as fullname from ... - 这会连接查询中的姓氏和名字......任何你希望存储全名的原因,当它可以很容易地在查询中复制时? || (管道符号)是postgres中连接的快捷方式(您会注意到我使用此名称在第一个和最后一个名称之间放置了一个空格)。你可以使用相同的逻辑在中间初始化或排序。 – Twelfth 2011-12-13 20:18:31

回答

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 %> 
+0

谢谢你tewlfth,zed_oxff,jamesTheprogrammer和@demas,很多好东西你都给了我......我得到了不加入数据库的论点,并会遵循这个建议。再次感谢。 – hlogoma 2011-12-13 20:39:17

0

你就不能连接你的意见中的名称?

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

0

虽然你可以解决这个问题,而不需要按照建议编辑数据库结构,你可以创建一个新的数据库列,并且可能需要编辑未来的数据库结构。

试试这个页,管理工具为你的db型 http://en.wikipedia.org/wiki/PostgreSQL#Database_administration

这看起来很合身。

pgAdmin的

“的pgAdmin的PAKAGE是对PostgreSQL,其被支撑在许多计算机平台的自由开放源码的图形用户界面管理工具”。

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