Rails通过单一关联来实现

时间:2009-12-01 10:48:38

标签: ruby-on-rails activerecord associations has-many has-many-through

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

我有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.

1 个答案:

答案 0 :(得分:1)

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

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