5

postgres に date_of_birth を含むテーブルがあり、Rails で年齢を計算するのではなく、Postgres age 関数を使用して年齢を返したいと考えています (これは単純な例です。postgres でより複雑な計算を行いたいと考えています)。

すべての選択を変更することなく、理想的には標準として、私の記録の残りの部分でpostgresから年齢を取り戻す最良の方法は何ですか?

編集:

ビューを使用することにした理由は次のとおりです。

  1. 私のデータベースはレール以外の他のアプリケーションで使用され、それらすべてが使用できる共通の関数を定義したいと考えています。
  2. 複数のアプリケーションでデータへのアクセスを制御したいと考えています。
  3. アプリケーションサーバーから処理の一部を奪います。
  4. 多くの計算フィールドを使用すると、よりスケーラブルになります。
4

1 に答える 1

3
people = Person.select('*, age(date_of_birth)')
people.each { |person| puts person.age }

はい、これにより、age以前は存在しなかったメソッド が追加されますPerson

新しいメソッドを関数名以外にエイリアスすることもできます。

people = Person.select('*, age(date_of_birth) as foo')
people.each { |person| puts person.foo }
于 2013-04-02T13:39:37.640 に答える