Class: Devise::RegistrationsController

Inherits:
DeviseController show all
Defined in:
app/controllers/devise/registrations_controller.rb

Instance Method Summary collapse

Methods inherited from DeviseController

#_prefixes, internal_methods

Instance Method Details

#cancelObject

GET /resource/cancel Forces the session data which is usually expired after sign in to be expired now. This is useful if the user wants to cancel oauth signing in/up in the middle of the process, removing all OAuth session data.



78
79
80
81
# File 'app/controllers/devise/registrations_controller.rb', line 78

def cancel
  expire_data_after_sign_in!
  redirect_to new_registration_path(resource_name)
end

#create {|resource| ... } ⇒ Object

POST /resource

Yields:

  • (resource)


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/controllers/devise/registrations_controller.rb', line 16

def create
  build_resource()

  resource.save
  yield resource if block_given?
  if resource.persisted?
    if resource.active_for_authentication?
      set_flash_message! :notice, :signed_up
      (resource_name, resource)
      respond_with resource, location: (resource)
    else
      set_flash_message! :notice, :"signed_up_but_#{resource.inactive_message}"
      expire_data_after_sign_in!
      respond_with resource, location: (resource)
    end
  else
    clean_up_passwords resource
    set_minimum_password_length
    respond_with resource
  end
end

#destroy {|resource| ... } ⇒ Object

DELETE /resource

Yields:

  • (resource)


65
66
67
68
69
70
71
# File 'app/controllers/devise/registrations_controller.rb', line 65

def destroy
  resource.destroy
  Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name)
  set_flash_message! :notice, :destroyed
  yield resource if block_given?
  respond_with_navigational(resource){ redirect_to after_sign_out_path_for(resource_name), status: Devise.responder.redirect_status }
end

#editObject

GET /resource/edit



39
40
41
# File 'app/controllers/devise/registrations_controller.rb', line 39

def edit
  render :edit
end

#new {|resource| ... } ⇒ Object

GET /resource/sign_up

Yields:

  • (resource)


9
10
11
12
13
# File 'app/controllers/devise/registrations_controller.rb', line 9

def new
  build_resource
  yield resource if block_given?
  respond_with resource
end

#update {|resource| ... } ⇒ Object

PUT /resource We need to use a copy of the resource because we don’t want to change the current user in place.

Yields:

  • (resource)


46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'app/controllers/devise/registrations_controller.rb', line 46

def update
  self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key)
  prev_unconfirmed_email = resource.unconfirmed_email if resource.respond_to?(:unconfirmed_email)

  resource_updated = update_resource(resource, )
  yield resource if block_given?
  if resource_updated
    set_flash_message_for_update(resource, prev_unconfirmed_email)
     resource, scope: resource_name if 

    respond_with resource, location: after_update_path_for(resource)
  else
    clean_up_passwords resource
    set_minimum_password_length
    respond_with resource
  end
end