Jede RAILS-Anwendung hat seeds.rb
in db/
Ordner.So wie der Name sagt, es wird verwendet, um Ihre db standardmäßig Datensätze, die Sie wollen, zu seed. Also das ist, wie ich meine seeds.rb.Creating viele Datensätze verwenden, Konstanten und dann die Datensätze in Ihrem db zu setzen, führen Sie einfach rake db:seed
Sie db ready.See angenommen haben HERE für mehr infor
meine Samen. rb
###seed eventype table with default values
["birthday","farewell","party"].each do |f|
EventType.find_or_create_by({name:f.upcase})
end
###create users with random names
##after creating users,create associated fields
%w[mike john paul allen harry betty].each_with_index do |name,index|
@user = User.find_or_create_by({email:"user_#{name}@gmail.com"})
##user has_one address
@user.create_address({:address_2=>"street 1,near berry lane"})
##user has_many pictures
@user.pictures.create!({:title=>"Title of the picture",:picture => File.new("#{Rails.root}/public/images/test.jpg")})
end
Sie sogar (0..6).each do
Schleife n Datensätze erstellen können, wie Sie in db möchten. zum Beispiel: -
(0..100).each do
###create user/pictures etc
end
aber Sie müssen vorsichtig sein, alle Validierungen und erstellen gültige Datensatz sonst diese nicht funktionieren zu folgen. Wenn Sie beispielsweise im Benutzermodell den Benutzernamen erwarten, müssen Sie in seeds.rb den Benutzernamen übergeben, damit er die Überprüfung problemlos bestehen kann.
============================================ ========================== Wenn Sie db Seed nicht verwenden möchten, können Sie einen Rückruf on: :create
verwenden (ich dont sein möchte, kann .Einfache Beispiel Beobachter):
##in user.rb
after_commit :create_default_account, on: :create
def create_default_account
##assuming user has_one :account
self.build_account({:name=>"Default account"})
end
HOPE IT
vielleicht etwas mit Faker/Fabrik Mädchen HILFT? – Doon
Faker könnte für einen Teil des Inhalts funktionieren, aber ein großer Teil wird domänenspezifisch sein. – apchester