在Rails中运行迁移后,数据库中的未定义数据

时间:2016-09-02 20:12:51

标签: ruby-on-rails database migration

我生成了迁移,将新列 user_id 添加到文章表中。 scheme.rb显示数据库中的更改已完成。 但是当我在控制台中运行Article.new时,我注意到新文章的结构与scheme.rb显示的结构不匹配。 WHY ??

生成迁移:

rails generate migration add_user_id_to_articles user:references

这是Rails生成的迁移:

class AddUserIdToArticles < ActiveRecord::Migration
   def change
     add_reference :articles, :user, index: true, foreign_key: true
   end
end

运行:

rake db:migrate

这是scheme.rb显示的内容。 新的 t.integer“user_id”已添加到表格中。

create_table "articles", force: :cascade do |t|
t.string   "title"
t.text     "body"
t.integer  "visits_count"
t.datetime "created_at",   null: false
t.datetime "updated_at",   null: false
t.integer  "user_id"

这就是我运行Article.new时Rails控制台显示的内容。

2.2.1 :056 > Article.new
 => #<Article id: nil, title: nil, body: nil, visits_count: nil, created_at: nil, updated_at: nil> 

没有 user_id 的迹象,当我预期 user_id nill

1 个答案:

答案 0 :(得分:0)

请输入重新加载!在rails控制台上,再次使用

进行检查
Article.new

如果不起作用,则用ctrl + d关闭rails终端并再次键入rails c 然后检查

Article.new