这可能很简单,但我还没有能够解决问题。
我有3张桌子......(远不止于此),但在这种情况下,这很重要。
地方 预订和 评分
地点has_many预订
每个预订has_one评级(因为用户只评价一次)和belongs_to(a)地点
评级为belongs_to(a)预订
因此,即使预订只有一个评级,但由于地方有很多预订,因此预订会有很多评分
但这似乎不起作用?其余的似乎都是。
预订有place_id,而且rating有一个booking_id,我通过协会获得了所有其他has_many的成功...而不是has_one?有任何想法吗?感谢
另外:如果我将预订更改为has_many:评级可行...但预订每次预订只会有一个评级...所以这似乎不是一件好事。
Invalid source reflection macro :has_one for has_many :ratings, :through => :bookings. Use :source to specify the source reflection.
答案 0 :(得分:1)
has_many :through
不适用于联接模型上的has_one
关系;有关详细信息,请参阅以下Rails票证:
如果可能,最好的解决方案可能是修改您的关系,以便预订belongs_to
评级而不是has_one
评级。