使用devise gem创建用户表后,我想在单独的迁移文件中再添加一个属性:
class AddAutoLoginTokenToUsersTable < ActiveRecord::Migration
def up
add_column :users, :auto_login_token, :string
end
def down
remove_column :users, :auto_login_token
end
end
运行rake db:migrate
会给出以下确认:
== 20140421141615 AddAutoLoginTokenToUsersTable: migrating ====================
-- add_column(:users, :auto_login_token, :string)
-> 0.0020s
== 20140421141615 AddAutoLoginTokenToUsersTable: migrated (0.0021s) ===========
但是使用Rails控制台或在服务器上执行会出现以下错误:
undefined method `auto_login_token' for #<User:0x00000103228b80>
你知道为什么会这样,以及如何解决这个问题?感谢
答案 0 :(得分:1)
根据您使用的宝石,您可能需要重新启动控制台才能获取User
模型的更改。
如果失败,请检查您是否在运行控制台的同一环境中运行了迁移。您可能已在开发环境中运行迁移并使控制台在生产环境中运行。有关如何在不同环境中运行迁移的信息,请参阅here:
rake db:migrate RAILS_ENV=test