0

我正在实施用户注册设计,但有一些自定义,如下所示。

  • 当用户使用用户名、电子邮件和密码注册时,电子邮件将发送给用户
  • 在电子邮件中,用户将获得完成注册过程所需的密码。
  • 当用户单击“转到应用程序”按钮时,它会将用户重定向到应用程序,用户必须使用该密码才能完成注册过程。
  • 用户完成注册过程后,用户与该密码之间将存在一对一的关系。

我在互联网上搜索了很多,但找不到答案。

问题:我不知道如何在 Rails 中创建密码,然后通过电子邮件将其发送给用户,然后将其与用户获得的密码匹配。

注意:密码和密码在我的应用程序中是两个不同的东西。

4

1 回答 1

0

Devise 有一个名为的内部模块Confirmable正是这样做的。

为了使用它,您需要做的就是:

  • 确保您的设计模型是:confirmable并且:registerable

    class User
      # ...
      devise :confirmable, :registerable ...
      # ...
    end
    
  • 运行创建确认令牌字段的迁移

    class AddConfirmableToUsers < 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
    

如果您已经有用户,并且不希望他们遵循此确认过程,那么您需要让他们确认。你可以这样做

User.update_all ["confirmed_at = ?", Time.now]

在控制台上。

更多参考:Confirable Module在 Devise 中向用户添加可确认

于 2013-03-23T15:04:49.563 回答