Ruby on Rails: Как я должен заполнить свою базу данных данными конкретного аккаунта? - PullRequest
0 голосов
/ 18 апреля 2011

Я создаю приложение SAAS с использованием Rails 3. Когда пользователь создает новую учетную запись, база данных должна заполняться большим количеством данных. Некоторые данные будут относиться к только что созданному аккаунту. Я не обязательно хочу делать все это с моделями внутри действия контроллера "зарегистрироваться". Каков наилучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

Из звуков вещей вы должны использовать обратный вызов в вашей модели пользователя. Скорее всего: before_create или after_create (в зависимости от ваших конкретных потребностей). Затем пользовательская модель может управлять созданием данных, относящихся к конкретной учетной записи, а не вашего контроллера, и таким образом придерживаться идеалов «толстой модели, тощего контроллера».

class User < ActiveRecord::Base
  after_create :setup_account_data

  private
  def setup_account_data
    # create other data as required
  end
end

Довольно просто, после создания пользовательской модели - будет вызван метод setup_account_data. Список других доступных обратных вызовов: здесь .

0 голосов
/ 18 апреля 2011

На ум приходит пара подходов.

  1. простой рубин.Это похоже на то, что делается при запуске rake db: seed - выполнение сценария ruby.

  2. фикстур.Если вы выгрузите базу данных в фикстуры [http://snippets.dzone.com/posts/show/4468],], вы можете модифицировать фикстуры так, чтобы данные, которые необходимо настроить, обрабатывались в блоках erb.Это тот же метод, который часто используется в испытательных приборах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...