繁体   English   中英

Ruby on Rails + devise:如何使用devis 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM