Rails has_many 通过单一关联
-
22-07-2019 - |
题
这可能很简单,但我还没有能够解决这个问题。
我有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 门票:
- https://rails.lighthouseapp.com/projects/8994/tickets/1149
- https://rails.lighthouseapp.com/projects/8994/tickets/2719-has_many-through-should-work-if-the-join-model-uses-has_one-relationship
如果可能的话,最好的解决方案可能是修改您的关系,以便预订 belongs_to
评级而不是 has_one
评分。
不隶属于 StackOverflow