Class: Hyrax::ContactFormController

Inherits:
ApplicationController
  • Object
show all
Defined in:
app/controllers/hyrax/contact_form_controller.rb

Instance Method Summary collapse

Instance Method Details

#after_deliverObject

Override this method if you want to perform additional operations when a email is successfully sent, such as sending a confirmation response to the user.


33
# File 'app/controllers/hyrax/contact_form_controller.rb', line 33

def after_deliver; end

#createObject


8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/controllers/hyrax/contact_form_controller.rb', line 8

def create
  # not spam and a valid form
  if @contact_form.valid?
    ContactMailer.contact(@contact_form).deliver_now
    flash.now[:notice] = 'Thank you for your message!'
    after_deliver
    @contact_form = ContactForm.new
  else
    flash.now[:error] = 'Sorry, this message was not sent successfully. '
    flash.now[:error] << @contact_form.errors.full_messages.map(&:to_s).join(", ")
  end
  render :new
rescue RuntimeError => exception
  handle_create_exception(exception)
end

#handle_create_exception(exception) ⇒ Object


24
25
26
27
28
# File 'app/controllers/hyrax/contact_form_controller.rb', line 24

def handle_create_exception(exception)
  logger.error("Contact form failed to send: #{exception.inspect}")
  flash.now[:error] = 'Sorry, this message was not delivered.'
  render :new
end

#newObject


6
# File 'app/controllers/hyrax/contact_form_controller.rb', line 6

def new; end