"How To: Add :confirmable to Users New Page Edit Page Page History" is old?

375 views
Skip to first unread message

Junichi Ito

unread,
Mar 25, 2012, 5:33:11 PM3/25/12
to Devise
I created a migration script according to the page below:

https://github.com/plataformatec/devise/wiki/How-To:-Add-:confirmable-to-Users

But I got a warning message like this:

[DEVISE] You are using t.database_authenticatable and others in your
migration and this feature is deprecated. Please simply use Rails
helpers instead as mentioned here:
https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0-migration-schema-style

So I feel the How-To page should be updated.
For example, I wrote migration file according to Rails3.1 style:

class GetUsersConfirmable < ActiveRecord::Migration
def change
add_column :users, :confirmation_token, :string
add_column :users, :confirmed_at, :datetime
add_column :users, :confirmation_sent_at, :datetime
add_index :users, :confirmation_token, :unique => true
end
end

--
Junichi
http://junichiito.blogspot.jp/

Carlos Antonio da Silva

unread,
Mar 25, 2012, 5:55:37 PM3/25/12
to plataforma...@googlegroups.com
Your new migration seems quite ok I guess. The warning you see is probably related to the other migration that has the devise creation methods for your users table. You have to change them accordingly to the link the warning is giving you (upgrade devise 2.0 - migration schema).

-- 
At.
Carlos Antonio

Junichi Ito

unread,
Mar 25, 2012, 6:41:45 PM3/25/12
to plataforma...@googlegroups.com
For the first time I wrote the migration like this, so this is why I
got the warning I guess.

class GetUsersConfirmable < ActiveRecord::Migration
def self.up
change_table(:users) do |t|
t.confirmable
end


add_index :users, :confirmation_token, :unique => true
end

def self.down
remove_column :users, :confirmable
end
end

The other migration is like this, it seems okay:

class DeviseCreateUsers < ActiveRecord::Migration
def change
create_table(:users) do |t|
## Database authenticatable
t.string :email, :null => false, :default => ""
t.string :encrypted_password, :null => false, :default => ""

## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at

## Rememberable
t.datetime :remember_created_at

## Trackable
t.integer :sign_in_count, :default => 0
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip

## Encryptable
# t.string :password_salt

## Confirmable
# t.string :confirmation_token
# t.datetime :confirmed_at
# t.datetime :confirmation_sent_at
# t.string :unconfirmed_email # Only if using reconfirmable

## Lockable
# t.integer :failed_attempts, :default => 0 # Only if lock
strategy is :failed_attempts
# t.string :unlock_token # Only if unlock strategy is :email or :both
# t.datetime :locked_at

## Token authenticatable
# t.string :authentication_token


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
end

--
Junichi

Carlos Antonio da Silva

unread,
Mar 25, 2012, 7:02:23 PM3/25/12
to plataforma...@googlegroups.com
Ah ok, I didn't look at the wiki page you've sent, sorry. It does have t.confirmable there. Please feel free to update the wiki with your migration code, the wiki is open to everyone to contribute. Thank you.

-- 
At.
Carlos Antonio

Junichi Ito

unread,
Mar 25, 2012, 7:21:00 PM3/25/12
to plataforma...@googlegroups.com
Okay, I will do it later.

Junichi

On Mon, Mar 26, 2012 at 8:02 AM, Carlos Antonio da Silva

Junichi Ito

unread,
Mar 26, 2012, 8:22:03 AM3/26/12
to plataforma...@googlegroups.com

Carlos Antonio da Silva

unread,
Mar 26, 2012, 8:30:47 AM3/26/12
to plataforma...@googlegroups.com
Awesome, thanks! :)

-- 
At.
Carlos Antonio

Junichi Ito

unread,
Mar 26, 2012, 4:43:05 PM3/26/12
to plataforma...@googlegroups.com
FYI
I updated the following page too:

https://github.com/plataformatec/devise/wiki/How-To:-Override-confirmations-so-users-can-pick-their-own-passwords-as-part-of-confirmation-activation
*Added the section "3) Lists the database fields explicitly for your
migrations" in "For Rails 3 & Devise 2.0.0".

--
Junichi

On Mon, Mar 26, 2012 at 9:30 PM, Carlos Antonio da Silva

Carlos Antonio da Silva

unread,
Mar 26, 2012, 5:13:48 PM3/26/12
to plataforma...@googlegroups.com
Great, thanks!

-- 
At.
Carlos Antonio

Reply all
Reply to author
Forward
0 new messages