Ruby on Rails + devise: Как создать таблицу пользовательских настроек с помощью devis rake db: migrate? - PullRequest
1 голос
/ 08 октября 2011

Рельсы генерируют устройство Пользователь получил это =>

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

Но я хочу создать таблицу пользователей с именами пользователей, электронной почтой, паролем, ролью, группой, маркой, create_at ,ified_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

1 Ответ

3 голосов
/ 08 октября 2011

Вы можете выполнить миграцию, чтобы добавить некоторые поля в пользовательскую таблицу.Например:

rails g add_fields_to_users username:string # as well as other fields you need

Затем, чтобы добавить столбцы к вашей таблице, выполните:

rake db:migrate

Devise уже сгенерировал некоторые столбцы, которые вам нужны, такие как: электронная почта, пароль, create_at, updated_at...

Для добавления ролей в вашу пользовательскую модель вы должны посмотреть скриншот канкана: railscasts , а также прочитать doc , чтобы увидеть некоторые обновления.

РЕДАКТИРОВАТЬ:

Если вы хотите добавить поля вручную, вы можете добавить их в свой метод self.up перед запуском миграции:

def self.up
  create_table(:users) do |t|

    #...

    t.rememberable
    t.trackable

    t.string :username
    #... your other attributes here

  end
...