Rails3 - добавление значений по умолчанию в связанную таблицу after_create - PullRequest
1 голос
/ 29 февраля 2012

Я ищу способ добавить intiatlize связанную БД после создания родителя.

У меня есть простая User модель с только полевым username и связанным (has_many)) child Place модель с полем placenames.

После того, как пользователь был успешно создан, таблица Places должна быть заполнена такими записями, как: Европа, Азия, АфрикаЯ думаю, что для этого нужно использовать метод after_create, но я не могу найти способ запуска создания из моей родительской модели.

Ответы [ 2 ]

3 голосов
/ 29 февраля 2012

Вы можете объявить after_create вот так

class User 

  after_create :initialize_places

  def initialize_places
    self.places.create(:placename => 'Europe')
    self.places.create(:placename => 'Asia')
    self.places.create(:placename => 'Africa')
  end
end

И создайте пользователя вот так

user = User.create(:username => 'The Black Adder')
0 голосов
/ 29 февраля 2012

Хм, не уверен, что именно вы пытаетесь сделать.

Получаете ли вы места, с которыми можно связать пользователя, из формы #create (например, пользователь может пометить предварительно определенные места флажками)?Или же пользователь может указывать места через разделенный запятыми список, и действие по созданию пользователя должно отсеивать дубликаты и добавлять новые в БД на лету?

...