Ruby on Rails 3 - создайте экземпляр одной модели из другой модели - PullRequest
0 голосов
/ 18 августа 2011

У меня следующая проблема, но сначала я сделаю некоторые предположения

  1. Пример - просто объяснить мою проблему простым способом
  2. Модели таблиц не связаны

У меня есть две таблицы (модели) пользователей по электронной почте

Пользователи

  • ID
  • имя
  • Адрес электронной почты

Письма

  • ID
  • счет

Итак, идея заключается в том, что каждый раз, когда я создаю пользователя, я хочу создать экземпляр Email, где Emails.account = Users.email

Я пытался использовать обратный вызов

def after_create
   Email.create!(:account => user.email)
end

Но это не сработало.

Есть ли другой способ добиться этого?

1 Ответ

1 голос
/ 18 августа 2011

Вы почти там, за исключением того, что вам не нужно ссылаться на переменную 'user' в вашем after_create, потому что вы находитесь в модели User.

Попробуйте выполнить следующее:

class User < ActiveRecord::Base 
  after_create :create_email
  def create_email
     Email.create!(:account => email)
  end
end
...