Cette erreur apparaît lorsque j'essaie de lancer mon application.ActiveRecord :: unknownAttributeError lors de l'ensemencement des données
lien vers mon repo
Ce que je l'ai fait est: -Création une application rails -créée quatre modèles comme décrit dans le schéma
ActiveRecord::Schema.define(version: 20160823102902) do
create_table "profiles", force: :cascade do |t|
t.string "gender"
t.integer "birth_year"
t.string "first_name"
t.string "last_name"
t.integer "User_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "todo_items", force: :cascade do |t|
t.date "due_date"
t.string "title"
t.text "description"
t.boolean "completed", default: false
t.integer "TodoList_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "todo_items", ["TodoList_id"], name: "index_todo_items_on_TodoList_id"
create_table "todo_lists", force: :cascade do |t|
t.string "list_name"
t.date "list_due_date"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "User_id"
end
add_index "todo_lists", ["User_id"], name: "index_todo_lists_on_User_id"
create_table "users", force: :cascade do |t|
t.string "username"
t.string "password_digest"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
et j'ai quelques les relations entre les quatre modèles que j'ai créés comme décrit dans le fichier modèle
class User < ActiveRecord::Base
has_one :profile , dependent: :destroy
has_many :todo_lists
has_many :todo_items,through: :todo_lists,source: :todo_items
end
class Profile < ActiveRecord::Base
belongs_to :user
end
class TodoList < ActiveRecord::Base
belongs_to :user
has_many :todo_items , dependent: :destroy
end
class TodoItem < ActiveRecord::Base
belongs_to :todo_list
end
L'erreur a commencé à se produire lorsque j'ai ajouté quelques données dans le fichier seed.rb comme indiqué
User.destroy_all
User.create! [
{username: "Fiorina" , password_digest: "123"},
{username: "Trump" , password_digest: "456"},
{username: "Carson" , password_digest: "789"},
{username: "Clinton" , password_digest: "abc"},
]
User.find_by!(username: "Fiorina").create_profile(first_name: "Carly" , last_name: "Fiorina")
User.find_by!(username: "Trump" ).create_profile(first_name: "Donald" , last_name: "Trump" )
User.find_by!(username: "Carson").create_profile(first_name: "Ben" , last_name: "Carson" )
User.find_by!(username: "Clinton").create_profile(first_name: "Hillary", last_name: "Clinton")
quelqu'un pourrait me expliquer ce que cela signifie erreur, ou ce que je suis censé faire?
, mais maintenant je sais où est le problème, cela pourrait être résolu en recréant les modèles? –
Vous n'avez pas besoin de recréer les modèles Avez-vous lancé 'rake db: migrate' après avoir édité les migrations? Si oui, quelle erreur obtenez-vous maintenant? C'est la solution que je suis sûr. une colonne 'user_id' mais vous l'avez mise en majuscule, donc renommer le champ devrait évidemment marcher –
Oui, je suis sûr à ceci est le problème, mais l'erreur n'a pas changé, et aussi le schéma n'a pas changé bien qu'il pointe maintenant à notre migration, peut-être j'ai ajouté les lignes à tort –