1

am trying to confirm a user account without using the built in devise confirmations controller but i happen to get the following error "uninitialized constant Confirmations Controller". Below is my confirmations controller class.

class ConfirmationsController < Devise::ConfirmationsController
def show
    @user = User.find_by_confirmation_token(params[:confirmation_token])
    if !@user.present?
        render_with_scope :new
    end
end

def confirm_account
    @user = User.find(params[:user][:confirmation_token])
    if @user.update_attributes(params[:user]) and @user.has_password?
        @user = User.confirm_by_token(@user.confirmation_token)
        flash[:notice] = "Hi " + @user.first_name + " your email has been verified. You can now start shopping and recommending other users to your supplier networks."
        redirect_to @user
    else
        render :action => "show"
    end
end
end

And in my routes.rb file i have the following:

devise_for :users, :controllers => { :confirmations => "confirmations" } do
   match "confirm_account", :to => "confirmations#confirm_account"
 end

And finally i have the following partial:

<p>Welcome <%= @user.first_name %>,</p><br/>
<%= form_for(resource, :url => confirm_account_path) do |f| %>
<%= f.label :email %>
<%= @user.email %>
<%= f.hidden_field :confirmation_token %>
<%= f.submit 'Confirm Account' %>
<p>Thank you for joining. Before you can purchase any item from your supplier or shared network, you will need to confirm your account first. Please follow the link below in order to confirm your account.</p>

<p><%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p><br/>

<p>Yours faithfully.</p>
<%end%>

1 Answers1

1

Devise is can be easily modified for your needs. Here is a similar topic, which may be helpful for you: Override devise registrations controller

Community
  • 1
  • 1
socjopata
  • 5,028
  • 3
  • 30
  • 33
  • thanks for the link. just realized that i saved controller class as "ConfirmationsController" instead of "confirmations_controller". let me try changing this and follow the link and see what comes out. – trevor kananura Jan 24 '12 at 07:05