2012-02-02 25 views
15

için yöntem Verified_at 'yöntemini kullanıyorum. Rails 3 kullanıyorum. Olası bir yinelenen here var. Ama sorunumu çözmedi, başka bir çözüm de yapmadı.tanımsız yerel değişken veya #User

class AddConfirmableToDevise < ActiveRecord::Migration 
    def change 
    change_table(:users) do |t| 
     t.confirmable 
    end 
    add_index :users, :confirmation_token, :unique => true 
    end 
end 

şöyle

taşıma işlemim ben devise :confirmableUser modelinde ilave var olduğunu.

Benim rake db:migrate hiçbir çıktı vermiyor. ve benim üye olmama hata verir:

undefined local variable or method 'confirmed_at' for #User 

Kimsenin bir ipucu var mı?

+2

Bilmen gerekir geliştirmede göçmen yardımcısı (t.confirmable gibi) şu şekilde kullanımdan kaldırılmıştır: sürüm 2.0. Bundan sonra, [manuel olarak sütunlar ekleyerek] olmalısınız (https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0-migration-schema-style) –

cevap

21

Tamam. Çözdüm. Taşıma güncel değil. Aynı kodla yeni bir geçiş yapın, ancak başka bir ad verin.

1.Run komut: geçiş dosyasındaki 2.In

rails g migration add_confirmable_to_devise_v1 

:

class AddConfirmableToDeviseV1 < ActiveRecord::Migration 
    def change 
    change_table(:users) do |t| 
     t.confirmable 
    end 
    add_index :users, :confirmation_token, :unique => true 
    end 
end 

3.Then

rake db:migrate 
4

Ben Mongoid kullanarak ve bu aynı hata var ediyorum . Bu alanları ekledim ve 16 örneğimde yeşil renge gitmek için rspec aldım.

field :confirmation_token, :type => String 
field :confirmed_at,   :type => Time 
field :confirmation_sent_at, :type => Time 
field :unconfirmed_email, :type => String 
13

Kendim için not. Birisi yararlı bulabilirsiniz:

rake db:migrate:reset 
    rake db:reset 

Voila: İhtiyacımız altı 2 komutlar olduğunu! İşe yarıyor!

+1

Nelerdir? db: reset' ve "rake db: migrate: reset"? rake -D db: reset' ya da rake -D db: migrate: reset' hiçbir şey göstermiyor ... – Green

18

son vasiyetle itibariyle sadece

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

@ DevDude yıllarda bağlamak için .. (2013 ....._ devise_create_users.rb) vasiyetle kullanıcıların göç konusunda aşağıdaki satırları yorumları kaldırma gerek kabul soruna cevap - zaten mevcut Users modeliniz varsa hangi doÕrulanabilir eklemek gerekir, 4/14 itibariyle Devise akımının sürümü için tam göç kodu:

class AddConfirmableToDeviseV1 < ActiveRecord::Migration 
    def change 
    change_table(:users) do |t| 
     # Confirmable 
     t.string :confirmation_token 
     t.datetime :confirmed_at 
     t.datetime :confirmation_sent_at 
     t.string :unconfirmed_email # Only if using reconfirmable 
    end 
    add_index :users, :confirmation_token, :unique => true 
    end 
end 
+0

Evet, bu doğru cevap. Aslında, başlangıçta bir geliştirme göçü oluşturduğunuzda, bu durum yorumlanacaktır. – Donato

İlgili konular