按照以下链接正确提到的所有步骤:
https://github.com/plataformatec/devise/wiki/How-To:-Add-:confirmable-to-Users
修改用户模型
首先,添加设计:confirmable
您models/user.rb
文件
创建一个新的迁移
然后,执行迁移:
rails g migration add_confirmable_to_devise
将生成db/migrate/YYYYMMDDxxx_add_confirmable_to_devise.rb.
将以下内容添加到它以执行迁移。
class AddConfirmableToDevise < ActiveRecord::Migration
# Note: You can't use change, as User.update_all will fail in the down migration
def up
add_column :users, :confirmation_token, :string
add_column :users, :confirmed_at, :datetime
add_column :users, :confirmation_sent_at, :datetime
# add_column :users, :unconfirmed_email, :string # Only if using reconfirmable
add_index :users, :confirmation_token, unique: true
# User.reset_column_information # Need for some types of updates, but not for update_all.
# To avoid a short time window between running the migration and updating all existing
# users as confirmed, do the following
execute("UPDATE users SET confirmed_at = NOW()")
# All existing user accounts should be able to log in after this.
# Remind: Rails using SQLite as default. And SQLite has no such function :NOW.
# Use :date('now') instead of :NOW when using SQLite.
# => execute("UPDATE users SET confirmed_at = date('now')")
# Or => User.all.update_all confirmed_at: Time.now
end
def down
remove_columns :users, :confirmation_token, :confirmed_at, :confirmation_sent_at
# remove_columns :users, :unconfirmed_email # Only if using reconfirmable
end
end
您还可以生成相应的设计意见,如果他们尚未建立:
rails generate devise:views users
进行迁移rake db:migrate
重新启动服务器。
这是正确的行为。确认/新建用于重新发送确认邮件,并且在注册后您不需要该页面,因为注册过程本身会发送确认电子邮件。只有当用户点击“重新发送确认电子邮件”链接时才应该访问该新页面。 – Sajan
嗨@Sajan - 这是正确的行为? 它永远不会告诉用户电子邮件需要确认。它只是重定向登录,并带有警报 - “您需要登录...” –