Все в заголовке, я хочу иметь возможность удалить учетную запись, которая не была подтверждена через установленный период времени .
Я использую:
My Devise User
Модель имеет следующие атрибуты:
devise :database_authenticatable, :confirmable, :registerable, :recoverable, :rememberable, :trackable, :validatable
И мойdb/schema.rb
create_table "users", :force => true do |t|
t.string "email", :default => "", :null => false
t.string "encrypted_password", :limit => 128, :default => "", :null => false
t.string "reset_password_token"
t.timestamp "reset_password_sent_at"
t.timestamp "remember_created_at"
t.integer "sign_in_count", :default => 0
t.timestamp "current_sign_in_at"
t.timestamp "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
t.timestamp "created_at"
t.timestamp "updated_at"
t.string "confirmation_token"
t.timestamp "confirmed_at"
t.timestamp "confirmation_sent_at"
end
Небольшой бонус - в моей модели User
я указал отношения между моими данными, например:
has_one :user_content, :dependent => :destroy
Я хочу убедиться, чтоего дети также удаляются.
Большое спасибо всем, кто может помочь!
Спасибо jrdi , вот ответ для базы данных с SQLite 3
desc "Delete all unconfirmed users after 7 days"
task :delete_unconfirmed_users => :environment do
users = User.all(:conditions => 'confirmed_at is NULL AND confirmation_sent_at <= datetime(\'now\',\'-7 days\')')
users.each do |user|
user.destroy
end
end
Для PostGRE (Heroku)
desc "Delete all unconfirmed users after 7 days"
task :postgre_delete_unconfirmed_users => :environment do
users = User.all(:conditions => 'confirmed_at is NULL AND confirmation_sent_at <= current_date - integer \'7\' ')
users.each do |user|
user.destroy
end
end
См. Его ответ для получения полной информации.Большое ему спасибо.