#ruby-on-rails #ruby-on-rails-4 #polymorphic-associations
#ruby-on-rails #ruby-on-rails-4 #полиморфные ассоциации
Вопрос:
попытка a имеет много сквозных ассоциаций, где таблица соединений (UserGroupMembers) является полиморфной. Это на Rails 4
Как мне это исправить?
При создании группы с членами возникает исключение. ошибка соединения с таблицей ie
User group memberships is invalid
код, создающий группу с пользователями
group = Group.new(name: "test")
group.users << User.first
group.valid? (or group.save)
class Group < ActiveRecord::Base
has_many :user_group_members, as: :link
has_many :users, through: :user_group_members, autosave: true
end
class User < ActiveRecord::Base
has_many :user_group_members
has_many :groups , through: :user_group_members, source: :link, source_type: :"Group"
end
class UserGroupMembers < ActiveRecord::Base
belongs_to :link , polymorphic: :true,required: true
belongs_to :user, required: true
end
Комментарии:
1.
User
напрямую не связано сGroup
. Оно связано черезuser_group_members
. Попробуйте создатьuser_group_members
дляgroup
модели.Users
будет доступен автоматически2. Группа связана с user_group_members через полиморфную ссылку.
3.
User
также следует упомянутьhas_many :user_group_members, as: :link
. Можете ли вы проверить это ‘ guides.rubyonrails.org/association_basics.html ‘.