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 № 1Vous 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