の属性である2つのコレクションの交差点:ルビー私は3つのクラスとして定義されている2つの異なるオブジェクト
クライアント
class Client < ActiveRecord::Base
belongs_to :provider
has_many :meeting_times
end
プロバイダ
class Provider < ActiveRecord::Base
has_many :clients
has_many :meeting_times
end
MeetingTimeの
class MeetingTime < ActiveRecord::Base
belongs_to :meetingable, polymorphic: true
end
各インスタンスMeetingTimeのeにstart_timeとend_timeの日があります。私は
client_instance1.meeting_times & provider_instance1.meeting_times
をしようとすると、
client_instance1.meeting_times.build(:day => "Friday", :start_time => time1, :end_time => time2)
client_instance1.meeting_times.build(:day => "Saturday", :start_time => time3, :end_time => time4)
client_instance1.save!
現在、次のように 私は効率的に私のシードファイルで
client_instance1.meeting_times and provider_instance1.meeting_times
の交点を計算するための方法がありますが、私はクライアントとプロバイダーのためのmeeting_timesを作成します
シードファイルでクライアントインスタンスとプロバイダインスタンスを開発した後、異なる会議時間のIDが一致しないため空のセットが返されます(たとえt彼の日、start_timeとend_timeは同じです)。 どうすればこの問題を解決できますか?私は何かを誤解していますか?
おそらくSQLサブクエリでこれを行うでしょう。私は、あなたが答えを探し始めることをお勧めします。 –
「交差点」と言うと、時間と日の正確な平等を意味しますか?または時間の部分的なオーバーラップを取得したいですか? –
@StanislavMekhonoshin私は単に、正確な平等を意味します。すなわち、 (ta1.day == ta2.day)&&(ta1.start_time == ta2.start_time)&&(ta1.end_time == ta3.end_time) – user8093919