我们正在将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.
任何人都可以建议我解决这个问题。
答案 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
我认为?