ActiveRecord :: HasManyThroughOrderError有很多通过关联

时间:2017-12-12 13:05:51

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

我们正在将Rails版本从5.0.6升级到5.1.4

我有以下代码:

class Profile < ApplicationRecord
  simple_roles
  has_many :profile_roles
  has_many :roles, through: :profile_roles
end

class ProfileRole < ApplicationRecord
  belongs_to :role
  belongs_to :profile
end

class Role < ApplicationRecord
  has_many :profile_roles
  has_many :profile, through: :profile_roles
end

我在执行Profile.first.roles时遇到错误。

ActiveRecord::HasManyThroughOrderError: Cannot have a has_many :through association 'Profile#roles' which goes through 'Profile#user_roles' before the through association is defined.

任何人都可以建议我解决这个问题。

2 个答案:

答案 0 :(得分:0)

您的协会中存在拼写错误:

role.rb 中,尝试替换

has_many :profile, through: :profile_roles

中的

has_many :profiles, through: :profile_roles

这现在有效吗?

答案 1 :(得分:0)

这不仅仅是一个错字吗?

has_many :profile, through: :profile_roles

:profile应该是:profiles我认为?