0
Ich versuche, eine Datenbank mit 4 Benutzern zu seed. Jeder Benutzer hat has_one Profil und has_many todo_lists. User-Modell:Seeding Datenbank Schienen gehören zu
class User < ActiveRecord::Base
has_one :profile, dependent: :destroy
has_many :todo_lists, dependent: :destroy
has_many :todo_items, through: :todo_lists, source: :todo_items
end
Hier ist meine Seed-Datei
User.destroy_all
user_list = [
["Carly", "Fiorina", "female", 1954],
["Donald", "Trump", "male", 1946],
["Ben", "Carson", "male", 1951],
["Hillary", "Clinton", "female", 1947]
]
user_list.each do |fname, lname, gender, byear|
{
User.create!(username: lname, password_digest: "xyz")
User.profile.create! (first_name: fname, last_name: lname, gender: gender, birth_year: byear)
User.todo_list.create!(list_name: "temp", list_due_date: 1.year.from_now);
}
end
Ich erhalte die Fehler unerwartete TLabel zu Benutzername Hinweis: lname. Meine Migration zum Erstellen der Benutzertabelle ist:
Ja, das ist wahr, danke für den Fang. Ich denke das Problem kann sein, dass ich kein Profil durch einen Benutzer erstellen kann. Vielleicht muss ich ein Profil erstellen und es dann einem Benutzer zuweisen? – leenyburger
Sie müssen das Profil und todo_lists der Benutzerinstanz und nicht der Benutzerklasse erstellen. Ich habe meine Antwort aktualisiert, um dies zu berücksichtigen. Denken Sie daran, dass Ihre Profile- und TodoList-Modelle über einen Fremdschlüssel verfügen müssen, der sie mit dem Benutzer verbindet. – eiko
Jetzt bekomme ich eine NoMethodError undefined Methode create! – leenyburger