Невозможно сохранить запись со многими через рельсы отношений - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь сохранить модель, у которой есть has_mnay через отношения с другой моделью, к сожалению, она не позволяет сохранить, позвольте мне объяснить

class Group < ActiveRecord::Base
  has_many :group_members, inverse_of: :group
  has_many :members, through: :group_members
end

class GroupMember < ActiveRecord::Base
  belongs_to :group
  belongs_to :member

  validates_presence_of :group, :member
end

class Member < ActiveRecord::Base
  has_many :group_members, inverse_of: :member
  has_many :groups, through: :group_members

 validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: true

end

так что в моей консоли я создаю группу

g = Group.last.dup (duplicating a record)
m = Member.last
g.members << m
g.save!

я получаю эту ошибку

ActiveRecord :: RecordInvalid: Authentication went wrong: Members email is already used,

обратите внимание, что у меня только один член в базе данных я не делаю, что еще нужно сделать, я пробовал это в течение прошлого дня, я не могу найти решение для этого

1 Ответ

0 голосов
/ 09 мая 2019

так вот в чем дело, у меня был не один участник в базе данных, а много участников, и в таблице участников было много повторяющихся электронных писем, я добавил подтверждение для электронной почты после того, как были созданы некоторые из дублирующих электронных писем.вот почему я получаю вышеупомянутую ошибку «ActiveRecord :: RecordInvalid: проверка подлинности прошла неправильно: электронная почта участников уже используется», поэтому в консоли я запустил скрипт, чтобы сделать все электронные письма участников уникальными, и снова выполнил те же команды, и этораз это работает

получается, что повторяющиеся записи не позволяют сохранить запись со многими через рельсы отношений

...