设计在轨道上的红宝石定制

时间:2013-03-23 14:50:45

标签: ruby-on-rails ruby devise

我正在为用户注册实现设计,但是一些自定义设置在下面。

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

  • 确保您的设计模型为:confirmable:registerable

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

    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 ModuleAdding confirmable to Users in Devise