Rails db没有添加带迁移的新列

use*_*795 3 ruby-on-rails ruby-on-rails-3.2

这是我的用户model.rb

class User < ActiveRecord::Base
    attr_accessor :password
  attr_accessible :email, :name

  validates :name,:presence=>true,:length=>{:maximum=>15}
    validates :email,:presence=>true,:length=>{:maximum=>15}
end
Run Code Online (Sandbox Code Playgroud)

我想添加一个新的密码列.我用了这个命令

rails g migration pass_mig password:string
Run Code Online (Sandbox Code Playgroud)

然后

rake db:migrate
Run Code Online (Sandbox Code Playgroud)

但仍然在db模式中

ActiveRecord::Schema.define(:version => 20130627073430) do

      create_table "users", :force => true do |t|
        t.string   "name"
        t.string   "email"
        t.datetime "created_at", :null => false
        t.datetime "updated_at", :null => false
      end
end
Run Code Online (Sandbox Code Playgroud)

同样在Rails控制台中:密码无法添加到新的用户对象中,即在新的数据库条目中.请提示.PS:我是铁杆新手所以这可能是一个愚蠢的问题.我使用的是rails版本:3.2.13和ruby版本:1.9.3

Mat*_*ves 6

好吧,这是关于每个人都在谈论的铁轨的"神奇"事情之一.当您执行迁移以向表添加列时,有一个命名约定.试试这个:

rails g migration add_password_to_users password:string
Run Code Online (Sandbox Code Playgroud)

几乎所有东西都有重要的命名约定.

  • 在执行生成器之前,还应检查和编辑生成器生成的任何迁移文件. (2认同)