私の最新のRailsアプリには、これらの3つのモデルがあります - Entries
、Politician
およびParties
。このアプリは単に「政治家」の「エントリ」を追加するためのものです。エントリに (エントリname, date
) があると仮定します。政治家の政党はメンバーシップ モデルを使用して記録され、各メンバーシップの時間枠も記録されます。したがって、メンバーシップのレコードは次のようになります。
politician_id, party_id, date_from, date_to
モデル
class Politician < ActiveRecord::Base
has_many :memberships
has_many :parties, :through => :memberships do
has_many :entries
end
class Party < ActiveRecord::Base
has_many :memberships
has_many :politicians, :through => :memberships
end
class Membership < ActiveRecord::Base
belongs_to :politician
belongs_to :party
end
ここで、テーブルに ID 148 の政治家のエントリ レコードがあり、両方のテーブルの日付に基づいて、このエントリのこの政治家の党員"148","My entry name", "2010-01-25"
を見つける必要があるとします。メンバーシップ テーブルにこれらのレコードがあると仮定します。ここで使用する必要があるスコープだと思いますか?
politician_id | party_id | date_from | date_to
148 | 10 | 2012-01-22 | 2013-01-22
148 | 16 | 2010-01-21 | 2012-01-21
148 | 45 | 2009-01-19 | 2010-01-20