Install from an existing model / database

I am wondering how to add an application to an existing database with another user. Here I already have a customer model, and I want to change it to allow her to work on it.

I created a new migration and inserted the code following

class AddDeviseToCustomer < ActiveRecord::Migration def change change_table :customers do |t| #t.database_authenticatable t.string :encrypted_password, :null => false, :default => '', :limit => 128 t.confirmable t.recoverable t.rememberable t.trackable t.token_authenticatable t.timestamps end end end 

Accordingly, it should work. https://github.com/plataformatec/devise/wiki/How-To:-change-an-already-existing-table-to-add-devise-required-columns . But when I run rake db: migrate, I get the following

 undefined method `confirmable' for #<ActiveRecord::ConnectionAdapters::Table:0x9286a28> 

I performed the following line

 rails g devise:install 

Any development reason will not recognize it, do I need to do something to say that the client is an application? thanks in advance

+8
ruby ruby-on-rails ruby-on-rails-3 devise
source share
1 answer

The documentation seems to be out of date.

Try using the development generator, it will create the same migration, with the correct parameters, this is normal if its existing model:

 rails g devise customer 

he must create AddDeviseToCustomers migration

with something similar to this:

 class AddDeviseToCustomers < ActiveRecord::Migration def self.up change_table(:customers) 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 ## 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 # Uncomment below if timestamps were not included in your original model. # t.timestamps end def self.down # By default, we don't want to make any assumption about how to roll back a migration when your # model already existed. Please edit below which fields you would like to remove in this migration. raise ActiveRecord::IrreversibleMigration end end 

note that there is no longer t.confirmable

+17
source share

All Articles