I持っている二つのモデル:外部キーとして「日付」列から抽出年を使用したRails関連付けですか?
class Person < ActiveRecord::Base
# birthday: date
end
class BirthYear < ActiveRecord::Base
# year: int
# people_count: int
end
人でBirthYearでyear
とdate
間の関連付けを作成する方法はありますか?私の目標は、特定の年に何人が生まれたかを把握し、その番号がいつ変化するかを追跡することです。
私は基本的にSQL条件ものと、主キーとしてdate
を使用したい:
extract(year from people.birthday) = birth_year.year
編集:私は別のを使用して考えていた理由である、私は可能であればcounter_cacheを使用したいと思いますモデル。カウント値を使用するたびに、extract
でレコードを数えないようにしたいと考えています。
です。唯一の問題(と私はこれを言及して申し訳ありません)は、毎回SQL経由でカウントを行うことを避けるためにcounter_cacheを使用したいと思います。あなたはこれを行う方法のアイデアはありますか? – etdev
あなたは[conditional counter_cache](http://douglasfshearer.com/2006/10/06/custom-counter-cache-with-conditions.html)を使うことができますが、ここの2つのモデルは間違った方法(種類醜いの)。クエリで 'extract'を使いたくない場合は、誕生日を' day'、 'month'と' year'に分割していますので、条件を簡潔にすることができます –