这可能很简单,但我还没有能够解决这个问题。

我有3张桌子...(远不止于此)但在这种情况下 3 很重要。

放置预订和评级

地点有_许多预订

每个预订都有一个评级(因为用户只评级一次)并且属于(a)地点

评级属于 (a) 预订

因此,即使 bookings 只有一个评分,也可以通过 bookings 获得 has_many 评分,因为地方也有很多预订

但这似乎不起作用?其余的似乎都这样。

Bookings 有 place_id ,Ratings 有 booking_id ,我已经通过关联与所有其他 has_many 取得了成功...只是不是 has_one 吗?有任何想法吗?谢谢

添加:如果我将 Bookings 更改为 has_many : ratings ,它会起作用...但每次预订只会有一个评分...所以这看起来不是什么好事。

Invalid source reflection macro :has_one for has_many :ratings, :through => :bookings.  Use :source to specify the source reflection.
有帮助吗?

解决方案

has_many :through 不适用于 has_one 连接模型上的关系;有关详细信息,请参阅以下 Rails 门票:

如果可能的话,最好的解决方案可能是修改您的关系,以便预订 belongs_to 评级而不是 has_one 评分。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top