Gdy rejestruje się nowy człowiek w programie, to jest dziki i nie wie, co ma z tym programem zrobić (ludzie 40-50 lat).
Dlatego postanowiłem załadować mu jakieś przykładowe dane, by mógł się nimi pobawić.
By mógł poćwiczyć edycję, zobaczyć wydruki, etc…
Ogarnąłem już temat.
do tego folderu /db/seeds/other
przeniosłem moje pliki *csv i utworzyłem dev.rb
i prod.rb
.
Jak chcę załadować bazę do testów, to wywołuję w terminalu
RAILS_ENV=development rake db:seed:dev
…i pięknie mi ładuje dane potrzebne do developerki (userów przykładowych, itd)
a jak wywołam:
RAILS_ENV=production rake db:seed:prod
…to pięknie ładuje mi wszystko, co potrzebuję do zainicjowania bazy produkcyjnej.
(Tak, wiem, że mógłbym posiłkować się zmienną RAILS_ENV i w jednym skrypcie to mieć, ale ponieważ skrypty dev.rb i prod.rb wywołują inne pliki *.rb, więc teraz jest prościej i czytelniej)
W /db/seeds/seeds.rb
napisałem moje przykłady, które mogę “doładować” wydając komendę z terminala:
RAILS_ENV=production(lub development) rake db:seed
i które ładują się też po wywołaniu akcji z aplikacji.
Wywołanie zrobiłem prosto
/models/user.rb
after_commit :load_example_data, on: :create
def load_example_data
Rails.application.load_seed
end
Wszystko gra i buczy.
…Ale dzięki za dobre chęci
P.S.
Też o tym myślałem, a chciałem nauczyć się coś z tym wywoływaniem rake db:seed
z aplikacji i przy okazji poprawiłem sobie funkcjonalność ładowania różnych rzeczy w wariantach dev/prod