Class: DmCms::ContactFormController

Inherits:
ApplicationController show all
Defined in:
app/controllers/dm_cms/contact_form_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject

Type of contact form object is specified by any param name that ends with ‘_contact_form’. Also takes into account themes. ‘tech_contact_form’ => TechContactForm ‘theme_bogus_tech_contact_form’ => ThemeBogus::TechContactForm




7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/controllers/dm_cms/contact_form_controller.rb', line 7

def create
  form_key = params.select {|key, v| key.end_with?('contact_form') }.first[0]
  if form_key.present?
    if form_key.start_with?('theme_')
      parts       = form_key.split('_')
      part_module = parts[0...2].join('_')
      part_class  = parts[2..-1].join('_')
      object      = "#{part_module}/#{part_class}".camelize.constantize
    else
      part_class  = form_key
      object      = "#{part_class}".camelize.constantize
    end
    @contact  = object.new(params[form_key])
    if @contact.deliver
      flash.now[:notice] = I18n.t('cms.contact_form.sent')
      @contact = nil
    end
  end
  @partial_name = "liquid_tags/#{part_class || 'contact_form'}"
end