![](/img/trans.png)
[英]Ruby on Rails: How can I revert a migration with rake db:migrate?
[英]Ruby on Rails + devise: How can i create customize users table with devis rake db:migrate?
rails generate devise用户我知道了这个=>
class DeviseCreateUsers < ActiveRecord::Migration
def self.up
create_table(:users) do |t|
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable
# t.encryptable
# t.confirmable
# t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
# t.token_authenticatable
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :reset_password_token, :unique => true
# add_index :users, :confirmation_token, :unique => true
# add_index :users, :unlock_token, :unique => true
# add_index :users, :authentication_token, :unique => true
end
def self.down
drop_table :users
end
end
但是我想用用户名,电子邮件,密码,角色,组,标记,created_at,modified_at列创建一个用户表。
我怎样才能做到这一点 ?
此结构是否正确,以包含用户名,密码,电子邮件,组,角色,标记?
class DeviseCreateUsers < ActiveRecord::Migration
def self.up
create_table(:users) do |t|
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable
# t.encryptable
# t.confirmable
# t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
# t.token_authenticatable
t.string :username
t.string :password
t.string :email
t.string :group
t.string :role
t.integer :mark
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :reset_password_token, :unique => true
# add_index :users, :confirmation_token, :unique => true
# add_index :users, :unlock_token, :unique => true
# add_index :users, :authentication_token, :unique => true
end
def self.down
drop_table :users
end
end
这些是什么?
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable
您可以执行迁移以将某些字段添加到用户表。 例如:
rails g add_fields_to_users username:string # as well as other fields you need
然后,为了向表中添加列,请运行:
rake db:migrate
Devise已经生成了一些您需要的列,例如:电子邮件,密码,created_at,updated_at ...
要将角色添加到您的用户模型中,您应该观看cancan截屏视频: railscasts并阅读文档以查看一些更新。
编辑:
如果要手动添加字段,可以在运行迁移之前将其添加到self.up方法中:
def self.up
create_table(:users) do |t|
#...
t.rememberable
t.trackable
t.string :username
#... your other attributes here
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.