Rails предварительно заполнить таблицу в миграции - PullRequest
4 голосов
/ 19 ноября 2010

Есть ли способ предварительно заполнить таблицу базы данных с миграцией в Rails 3.x?У меня есть список состояний, и я хотел бы иметь возможность его предварительно заполнять всякий раз, когда я настраиваю сборку проекта.

Ответы [ 2 ]

6 голосов
/ 20 ноября 2010

Вы можете использовать db/seeds.rb для этого.Хороший способ заполнить таблицы в новом приложении.

http://ryandaigle.com/articles/2009/5/13/what-s-new-in-edge-rails-database-seeding

http://www.robbyonrails.com/articles/2009/09/05/planting-the-seeds

5 голосов
/ 19 ноября 2010

Да. После создания таблицы вы можете вызвать модель состояния и начать заполнять таблицу.

class LoadStates < ActiveRecord::Migration
  def self.up
    states = ['state1','state2','state2']
    for state in states
        State.create(:name=>state)
    end
  end

  def self.down
    State.delete_all
  end
end

Если вы хотите получить больше фантазии, я бы использовал гем activerecord-import для массовой вставки. Это также хороший подход, если у вас есть сотни или тысячи записей для импорта.

  def self.up
    states = ['state1','state2','state2']
    states_for_import = []
    for state in states
        states_for_import << State.new(:name=>state)
    end
    State.import states_for_import
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...