Я пытаюсь выполнить очистку некоторых данных.Rails объединяет дубликаты, если значение соответствует или nil
У меня есть детали в различных формах с различными дубликатами.
models/object.rb
attr_accessible :name, :email, :assoc_id
Я хочу объединить дублирующиеся где имя соответствие и электронная почта либо согласования или ноль, а assoc_id либо соответствия или ноль.
Не знаю, как я пишу запрос, чтобы вернуть группы объектов, которые либо согласование или ноль ..
т.е.
grouped_objects = Object.group_by{|o| [o.name]}
приносит мне сгруппирован только по имени
grouped_objects = Object.group_by{|o| [o.name, o.email]}
приносит мне сгруппированное имя и адрес электронной почты.
Проблема в том, что многие объекты не имеют данных.
Просто захотите быстро и грязно, чтобы в отсутствие другой информации я объединил записи вместе.
Однако, если есть кто-то с другим адресом электронной почты или с другим сообщением, я не буду это слить. Цените, что будут какие-то ложные записи, но то, что мы получим, будет улучшением.
Как написать этот запрос activerecord?
grouped_objects = Object.group_by{|o| [o.name, o.email || o.email == nil]}
Надежда, что имеет смысл,
Я не уверен, почему вы хотите объединить эти объекты. Вы хотите, чтобы ваш объект был уникальным по имени и электронной почте (и разрешает пустую электронную почту) в вашей базе данных? – Kilian
Большинство объектов автоматически генерируются другим процессом, который запускается системой. Этот процесс не всегда имеет доступ к полной информации, но относится к тем же «людям» (или объектам). В настоящее время у нас большой беспорядок из нескольких дубликатов записей, которые явно относятся к тем же людям. Я бы хотел очистить это от прикосновения. Я хочу объединить их, поскольку они связаны с другими объектами в базе данных wher eit имеет смысл знать, что они являются тем же человеком, что и отношение – Carpela