Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在活动记录中有什么方法可以到达那里吗_Ruby On Rails_Ruby_Ruby On Rails 3_Activerecord - Fatal编程技术网

Ruby on rails 在活动记录中有什么方法可以到达那里吗

Ruby on rails 在活动记录中有什么方法可以到达那里吗,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,我有一个用户模型,它有许多角色,角色有许多用户,所有这些都通过一个中间表。最后这个角色有很多/只有一个目标。我想通过用户实现目标,或者说我想做一些类似于用户有很多:目标通过:角色。当我这样做并尝试设置user.goals=Goal.all时。它给出了以下例外情况 ActiveRecord::HasmanyThroughCanAssociateThroughAsOne或AnyReflection:无法修改关联“User#goals”,因为源反射类“Goal”通过以下方式与“Account”关联:h

我有一个用户模型,它有许多角色,角色有许多用户,所有这些都通过一个中间表。最后这个角色有很多/只有一个目标。我想通过用户实现目标,或者说我想做一些类似于用户有很多:目标通过:角色。当我这样做并尝试设置user.goals=Goal.all时。它给出了以下例外情况

ActiveRecord::HasmanyThroughCanAssociateThroughAsOne或AnyReflection:无法修改关联“User#goals”,因为源反射类“Goal”通过以下方式与“Account”关联:has#one


有没有办法做到这一点。我在RailsAPI上没有看到类似的情况。

您不需要显式地设置它,您应该可以这样做

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

has_many :goals, :through=>:joining_table_name

你不需要显式地设置它,你应该能够做到

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

has_many :goals, :through=>:joining_table_name

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

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

如果是这种情况,那么您将所有目标关联到一个用户,从而打破了此模型,因此目标应该有
多个
,而不是
有一个
帐户,因为您没有发布模型的详细信息,我根据错误猜测如下:

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

如果是这样的话,那么通过将所有目标关联到一个用户,你就打破了这个模型,因此目标应该有
has\u many
而不是
has\u one
Account

我想也许你需要发布更多模型的细节,比如has\u many关于目标、角色、用户的声明,会计你有没有一些没有在这里介绍的东西:我想你可能需要发布更多关于你的模型的细节,比如有很多关于目标、角色、用户、会计的声明你有没有一些没有在这里介绍的东西: