2011-12-13 122 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,其被支撐在許多計算機平臺的自由開放源碼的圖形用戶界面管理工具」。

魚爲男人,他吃了一天。教一個人去釣魚,他吃了一輩子。

相關問題