Create Contact Form
To create a mail form
Section titled “To create a mail form”A mail form is a simple tableless form that submits to an email address and stores the data in a contact form table in heatwave
You need two files:
- A model definition. Stored under app/models/mail_form
- A html form. Stored under app/views/contact_forms
Mail Form Model definition
Section titled “Mail Form Model definition”In app/models/mail_form just take one that exists and copy it to the name you want
if your new form is enroll_special_program then in the model you call it
class MailForm::EnrollSpecialProgram …
Then you add all the attributes in store_accessor, leave the first one :object that’s where i store stuff so
store_accessor :object, :attribute1, :attribute2, etc.
Then you repeat this below
attribute :attribute1 attribute :attribute2 etc
If the field is required, you add ”, validate: true” next to the attribute
so attribute :attribute1, validate: true
HTML Form definition
Section titled “HTML Form definition”Create the form of the same name under
app/views/contact_forms
In our example it would be enroll_special_program.html.erb
from there just copy / paste from one of the other example
what’s important, your form tag references the form name (note its - not _ here):
<%= form_with model: @form_object, scope: :contact_form, url: cms_link(‘/contact/enroll-special-program/send’), method: :post, local: true do |f| %> … all my form stuff
<% end %>