Active Record中有没有办法实现目标

时间:2011-04-05 14:30:13

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

我有一个用户模型has_many角色,而角色有很多用户,都是通过中间表。最后角色has_many / has_one目标。我想通过用户达成目标,或者让我说我想做一些像用户has_many:目标通过:角色。当我这样做并尝试设置user.goals = Goal.all。它给出了以下例外。

  

ActiveRecord :: HasManyThroughCantAssociateThroughHasOneOrManyReflection:无法修改关联“用户#目标”,因为源反射类“目标”通过以下方式与“帐户”关联:has_one。

有没有办法实现这一目标。我在RailsAPI上看不到类似的内容。

2 个答案:

答案 0 :(得分:0)

您无需明确设置它应该能够做到的事情;

user.goals

只要您的模型中包含以下内容:

has_many :goals, :through=>:joining_table_name

答案 1 :(得分:0)

由于您没有发布模型的详细信息,我根据错误猜测以下内容:

User has_one Account
User has_many Goals
Goal belongs_to User
Goal has_one Account

如果是这种情况,那么您通过将所有目标与一个用户相关联来打破此模型,因此目标应该是has_many而不是has_one帐户