Что лучший способ состоит в том, чтобы отобрать базу данных в направляющих?

Вы очень близки к тому, чтобы исправить свой код с помощью stack

df_pivot.stack(level=0)
Out[682]: 
obs_date             2017-09-12  2019-09-19  2019-09-26
orig_date                                              
2019-09-12 balance       1700.0      1750.0      1650.0
           payments       200.0         0.0       100.0
2019-09-19 balance          NaN      1235.0       950.0
           payments         NaN         0.0       300.0
2019-09-26 balance          NaN         NaN      3435.0
           payments         NaN         NaN        50.0
.
78
задан Nakilon 9 February 2016 в 15:56
поделиться

4 ответа

Обновление, поскольку эти ответы слегка устарели (хотя некоторые все еще применяются).

Простая функция, добавленная в рельсы 2.3.4, БД / SEEDS.RB

Обеспечивает новую задачу разъема

rake db:seed

хорошо для заполнения обычных статических записей, таких как состояния, страны и т. Д. ...

http: // Railscasts.com/episodes/179-seed-data

*snote, что вы можете использовать приспособления, если вы уже создали их, чтобы также заполнить с помощью DB: SEED PADUCE, выдвинув следующую в файл SEEDS.RB (из Railscast Эпизод):

require 'active_record/fixtures'
Fixtures.create_fixtures("#{Rails.root}/test/fixtures", "operating_systems")

для Rails 3.x Используйте «ActiveReCord :: Световые приспособления» вместо константы «Приспособления»

require 'active_record/fixtures'
ActiveRecord::Fixtures.create_fixtures("#{Rails.root}/test/fixtures", "fixtures_file_name")
110
ответ дан 24 November 2019 в 10:31
поделиться

Добавьте его в миграцию базы данных, чтобы каждый получил его при обновлении. Обработайте всю свою логику в коде ruby ​​/ rails, чтобы вам никогда не приходилось связываться с явными настройками идентификатора.

-3
ответ дан 24 November 2019 в 10:31
поделиться

Лучший способ - использовать светильники.

Примечание: имейте в виду, что приборы делают прямые вставки и не используют вашу модель, поэтому, если у вас есть обратные вызовы, которые заполняют данные, вам нужно будет найти обходной путь.

-3
ответ дан 24 November 2019 в 10:31
поделиться

factory_bot звучит так, как будто это сделает то, чего вы пытаетесь достичь. Вы можете определить все общие атрибуты в определении по умолчанию, а затем переопределить их во время создания. Вы также можете передать идентификатор на завод:

Factory.define :theme do |t|
  t.background_color '0x000000'
  t.title_text_color '0x000000',
  t.component_theme_color '0x000000'
  t.carrier_select_color '0x000000'
  t.label_text_color '0x000000',
  t.join_upper_gradient '0x000000'
  t.join_lower_gradient '0x000000'
  t.join_text_color '0x000000',
  t.cancel_link_color '0x000000'
  t.border_color '0x000000'
  t.carrier_text_color '0x000000'
  t.public true
end

Factory(:theme, :id => 1, :name => "Lite", :background_color => '0xC7FFD5')
Factory(:theme, :id => 2, :name => "Metallic", :background_color => '0xC7FFD5')
Factory(:theme, :id => 3, :name => "Blues", :background_color => '0x0060EC')

При использовании с фейкером он может очень быстро заполнить базу данных ассоциациями, не беспокоясь о Fixtures (гадость).

У меня есть подобный код в рейке.

100.times do
    Factory(:company, :address => Factory(:address), :employees => [Factory(:employee)])
end
25
ответ дан 24 November 2019 в 10:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: