1
Теперь у меня есть 3 моделиfind_or_create_by во многих ко многим
Membership:
belongs_to :users
belongs_to :groups
User:
has_many: groups, through: :memberships
accepts_nested_attributes_for :groups
Group:
has_many: users, through: :memberships
Тогда я делаю
u1 = User.new(name: "u1")
u2 = User.new(name: "u2")
g1 = Group.new(name: "1")
u1.groups.find_or_create_by g1.attributes
u2.groups.find_or_create_by g1.attributes
u1.save
u2.save
Что я ожидал бы это
Groups.all.count == 1
Но всегда есть «2 ».
Как я могу решить эту проблему?
эта проблема специфична для '' has_many' с through'. Одним из решений является добавление валидности уникальности в группе и сохранение его до db перед назначением, но это может подойти вашим требованиям. – tihom