Я новичок в рельсах и после учебника, где мы создали некоторые записи. В настоящее время, когда я запускаю сервер он говорит мнеДублируемое имя столбца в рельсах
Migrations are pending. To resolve this issue, run: bin/rake db:migrate RAILS_ENV=development
Потом я заметил, увидев некоторые SO постов, я должен сделать что-то вроде бега
rake db:migrate
Тогда я понял, что, когда я сделал, что я получил кучу линии и один, у которого было это
ActiveRecord::StatementInvalid: SQLite3::SQLException: duplicate column name: description: ALTER TABLE "articles" ADD "description" text
Из чего я исхожу из этой проблемы. Теперь я не эксперт в рельсах, но как я могу определить, где этот дубликат столбец из, когда я
rails console- > Article.all
Я получаю
<ActiveRecord::Relation [#<Article id: 1, title: "This is my first article",
description: "This is the description", created_at: "2016-07-20 00:03:42",
updated_at: "2016-07-20 00:03:42">, #<Article id: 2, title: "This is an endited
title", description: "This is my second description", created_at: "2016-07-20
00:05:39", updated_at: "2016-07-20 00:40:54">]
Что я создал вчера. Но где это дублирующее поле описания? Где я должен искать?
Мои две миграционные файлы выглядят как это, кстати
class CreateArticles < ActiveRecord::Migration
def change
create_table :articles do |t|
t.string :title
t.text :description
t.timestamps null: false
end
end
end
Другой
class AddDescriptionToArticles < ActiveRecord::Migration
def change
add_column :articles, :description, :text
add_column :articles, :created_at, :datetime
add_column :articles, :updated_at, :datetime
end
end
Моя схемы
ActiveRecord::Schema.define(version: 20160715020218) do
create_table "articles", force: :cascade do |t|
t.string "title"
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
Я добавил схему в исходное сообщение. Его все еще дает мне ошибку, и когда я делаю рейк db: migrate, он говорит мне, что у меня есть дубликат колонки в другом месте тоже –
отредактировал ответ. вы также дублируете свои столбцы timestamp, когда ваша схема уже имеет их. – Ren
Так что я удаляю все в def change? Странно, инструктор ОПРЕДЕЛЕНА написал все это в последней лекции. И его код отлично работает –