/ / Ruby on Rails + devise: Comment créer une table d'utilisateurs personnalisée avec devis rake db: migrate? - ruby-on-rails, devise, ruby-on-rails-3.1

Ruby on Rails +: Comment créer une table utilisateur personnalisée avec devis rake db: migrate? - ruby-on-rails, devise, ruby-on-rails-3.1

rails génèrent devise utilisateur J'ai obtenu ceci =>

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

Mais je veux créer une table d'utilisateurs avec les colonnes nom d'utilisateur, e-mail, mot de passe, rôle, groupe, marque, created_at, modified_at.

Comment puis-je faire ceci ?

Cette structure est-elle correcte pour avoir un nom d'utilisateur, un mot de passe, un e-mail, un groupe, un rôle, une marque?

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

Qu'est-ce que c'est?

t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable

Réponses:

3 pour la réponse № 1

Vous pouvez effectuer une migration pour ajouter des champs à la table des utilisateurs. Par exemple:

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

Ensuite, afin d'ajouter des colonnes à votre exécution de table:

rake db:migrate

Devise a déjà généré certaines colonnes dont vous avez besoin comme: email, mot de passe, created_at, updated_at ...

Pour ajouter des rôles à votre modèle utilisateur, vous devez regarder la capture d'écran cancan: Railscasts et aussi lire le doc afin de voir quelques mises à jour.

MODIFIER:

Si vous souhaitez ajouter des champs manuellement, vous pouvez les ajouter dans votre méthode self.up avant d'exécuter votre migration:

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

#...

t.rememberable
t.trackable

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

end