[英]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.