Рельсы создают! с вложенными атрибутами

Я пишу на электронную почту каждый раз, когда мое приложение получает электронные письма.

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

У меня есть соответствующий EmailAddress, у которого есть много моделей с соответствующими атрибутами для передачи!

Модель электронной почты имеет: имя_почты: адреса электронной почты, имя_класса: "адрес электронной почты", как: "адрес_адреса электронной почты".

class EmailProcessor
  def self.process(email)
    Email.create!({ 
                    body:       email.body,
                    subject:    email.subject,
                    email_addresses: email.to
                  })
  end
end

Пример того, что я считаю, email.to будет выглядеть так:

email.to = [{
  :token => "A",
  :email => "A2",
  :full  => "A3",
  :name  => "A4"
},{
  :token => "B",
  :email => "B2",
  :full  => "B3",
  :name  => "B4"
}]

1 ответ

Решение

Вы должны добавить accepts_nested_attributes_for :email_addresses в вашей модели электронной почты, если вы хотите иметь возможность создавать новую электронную почту вместе со связанными с ней новыми адресами электронной почты, используя вложенные атрибуты. Вы можете узнать больше из этого ответа Stackru: как attr_accessible используется в Rails 4?

Я предполагаю, что вы используете Rails 4.

Другие вопросы по тегам