2011-12-13 13 views
0

私はレール3.1.3、postgreql9.1、およびruby 1.9.3を使用しています。既存のデータベースに列を追加しますか?

実際には2つの既存の列の連結である既存のデータベースに列を追加したいと思います。姓と名。

これを行うにはどうすればよいですか?

私がフルネームを表示する理由は、従業員を表示する時間が来たら、フルネームを表示するだけですが、他の機能のために2つの部分に分割する必要があります。

また、従業員のフルネームをレポートに表示したいだけですが、従業員の電子メールとプライマリポジションを表示してから、infoというリンクを設定することもできますクリックすると、従業員表のすべての属性を示す従業員の詳細レポートが表示されます。

これまでのところ、私は基本的な従業員ページを持っています。

いずれの読者も、このようなことについて、いくつかの指針、指針、アドバイスを提供したいと思っています。

ありがとう、

トム

+0

select first_name || '' || lastname from fullname ... - これはクエリの最初と最後の名前を連結します...これは簡単にクエリで再現できるときにフルネームを保存したいと思う理由は何ですか? || (パイプ記号)は、postgresでの連結の簡単な方法です(これを使用して姓と名の間にスペースを入れます)。あなたは同じ論理を使って中間のイニシャルやソートを投げることもできます。 – Twelfth

答えて

1

データベースに実フィールドを作成する必要がある場合は、migrationsを使用できます。

しかし、この場合には、あなたはvirtiual属性を使用することができます。

は、モデル内の2つのメソッドを作成します。

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

ありがとう、tedlfth、zed_oxff、jamesTheprogrammerと@demas、あなたが私に与えてくれた素晴らしいものがたくさん...私はdbに追加しないという議論をして、そのアドバイスに従います。再度、感謝します。 – hlogoma

0

はちょうどあなたすることはできませんビュー内の名前を連結しますか?

DBデータをこのように複製する必要はありません。

0

提案されているようにdb構造体を編集せずにこの問題を解決することができますが、新しいdb colを作成し、将来db構造体を編集する必要があります。

dbタイプの管理ツール http://en.wikipedia.org/wiki/PostgreSQL#Database_administrationをお試しください。

これは良いフィット感のようです。

pgAdminで

「pgAdminでのpakageは、多くのコンピュータプラットフォームでサポートされてPostgreSQL用のフリーでオープンソースのグラフィカル・ユーザー・インターフェース管理ツール、です」。

男のための魚、彼は一日食べる。人に魚を教え、生涯食べる。