0

これはおそらく非常に単純ですが、私はまだ問題を理解できていません。

私は3つのテーブルを持っています...(それ以上)が、このシナリオでは3つが重要です。

場所の予約と評価

Places has_many の予約

各予約には、(ユーザーが 1 回だけ評価するため) 1 つの評価があり、belongs_to (a) 場所

評価の所属先 (a) 予約

したがって、予約には評価が 1 つしかありませんが、場所には多くの予約があるため、場所には予約を通じて has_many の評価があります。

しかし、これはうまくいかないようですか?残りはすべてそうです。

Bookingsにはplace_idがあり、Ratingsにはbooking_idがあり、関連付けを通じて他のすべてのhas_manyで成功しました... has_oneだけではありませんか? 何か案は?ありがとう

追加: Bookings を has_many :ratings に変更すると機能しますが、予約ごとに評価が 1 つしかないため、これは良いことではないようです。

Invalid source reflection macro :has_one for has_many :ratings, :through => :bookings.  Use :source to specify the source reflection.
4

1 に答える 1

1

has_many :throughhas_one結合モデルの関係では機能しません。詳細については、次の Rails チケットを参照してください。

可能であれば、おそらく最良の解決策は、予約belongs_toが評価ではなく評価になるように関係を変更することhas_oneです。

于 2009-12-01T11:04:38.397 に答える