簡體   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