Good question.
In your user model add this class method
class User < ActiveRecord::Base def self.allow_unconfirmed_access_for 1.day
In Devise::Models::Confrimable there is a method called confirmation_period_valid? . This method checks the above class method, which by default does not exist and expects nil.
If you set this time, Devise will allow this user to subscribe during this period, even if it is not verified.
You do not need changes on the controller.
Disclaimer: I have not used this solution before, but just finished it by looking at the source code. Theoretically, it should work.
source share