Ich versuche, meine SQLite3 Datenbank mit einer einfachen Seed-Datei zu füllen, die ein Bündel o Filme Einträge in der Film-Tabelle erstellen und erstellen Sie dann einige Kommentare sollten zu diesen Filmen, die in der Kommentartabelle gespeichert sind.Sie können nicht nennen erstellen, wenn die Mutter Fehler werden gespeichert, wenn in Schienen Impfen
formats = %w(Beta VHS IMAX HD SuperHD 4K DVD BlueRay)
30.times do
film = Film.create(title: "#{Company.bs}",
director: "#{Name.name}",
description: Lorem.paragraphs.join("<br/>").html_safe,
year: rand(1940..2015),
length: rand(20..240),
format: formats[rand(formats.length)]
)
film.save
(rand(0..10)).times do
film.comments.create(author: "#{Name.name}",
title: "#{Company.bs}",
content: Lorem.sentences(3).join("<br/>").html_safe,
rating: rand(1..5)
)
end
end
Sobald i ausführen rake db: Samen ich unweigerlich den Fehler
Active :: RecordNotSaved: Sie erstellen nicht aufrufen können, wenn die Eltern gespeichert
und keine Datensätze hinzugefügt zu entweder Filme oder Kommentare
Meine film.rb Datei ist
class Film < ActiveRecord::Base
has_many :comments
validates_presence_of :title, :director
validates_length_of :format, maximum: 5, minimum:3
validates_numericality_of :year, :length, greater_than: 0
validates_uniqueness_of :title
paginates_per 4
end
Die Längenbegrenzung auf ‚Format‘ wirft den Fehler, wenn ein Film mit Formaten aus dem ‚Format‘ -Liste
Können Sie die Datei film.rb hinzufügen. Ich glaube, aufgrund eines Fehlers wird der Film nicht gespeichert. Wenn Sie also versuchen, Kommentare zu diesem Film zu erstellen, wird er nicht erstellt. Wir müssen herausfinden, welcher Fehler verhindert, dass der Film erstellt wird. – coderhs
oder ändern Sie einfach 'Film.create' in' Film.create! 'Und Sie sollten überprüfen, welche Validierung verhindert, dass Filme gespeichert werden. – basiam
Ich stimme @Coderhs zu. Wir müssen sehen, was Film gehört. Es gibt eine gewisse Logik in Ihrem Modell, die benötigt, dass die Eltern des Films zuerst gespeichert werden. Sobald wir wissen, welcher Film gehört_to müssen Sie zuerst Seed-Daten für den Parent hinzufügen, die die Child-Daten abhängig davon, ob die Logik Sound ist oder nicht, erstellen sollten. – James