3

各モデルの外部キーと主キーの両方として日付を使用して、2 つのモデル間に has_many 関連付けがあります。

ある方法では完全に機能しますが、他の方法では機能しません。

作品

has_one :quiz_log, :primary_key => :start_at, :foreign_key => :start_at

動作しません

has_many :event_logs, :primary_key => :start_at, :foreign_key => :start_at 

その理由は (私が思うに) QuizLog の start_at が で、dateEventLog の start_at が であるためdatetimeです。そのため、単純な日付で正確な日時と一致させようとして nil が返されます。

2番目のステートメントでforeign_key start_atをキャストして、最初にdatetimeから単にdateに変換して、2番目のモデルと一致させるにはどうすればよいですか?

4

3 に答える 3

1

タイトルを二度読んだ後、あなたが何を求めているのか理解できます。次のようなものがうまくいくでしょうか?

has_many :event_logs, :primary_key => :start_at, :conditions => proc { "start_date = '#{event_logs.start_date.to_date}'" }
于 2013-07-02T22:43:00.720 に答える