Getting Started
Install Superform in your Rails application, then customize the ApplicationForm
.
$ bundle install superform
Then install it.
$ rails generate superform:install
Superform creates a few files in your applicationβs app/forms
directory and changes the config/application.rb
file.
Configuration changes
The installer adds the following line to your config/application.rb
file:
config.autoload_paths << Rails.root.join('app/forms')
This allows for forms to be picked up by Rails autoloader.
The ApplicationForm
file
This is the base form file that you can use to extend and customize your forms. Like other Phlex components, you can modify and extend it to create different types of forms.
π Unlock content
Pre-order this course to unlock this video, source code, and content.
class ApplicationForm < βββββββββ::βββββ::ββββ
include βββββ::βββββ::βββββββ::βββββββββ
β β ββββββ ββ ββββ ββββ ββββββ ββββ βββββββ
def βββ(βββββββββ)
βββ do
ββββββ βββββββββ.βββββ.βββββ(style: "display: block;")
ββββββ βββββββββ
end
end
β βββββββββββββ ββββ βββββ ββββββββ ββββββ βββ ββββ βββ β ββββββ ββββββ ββββββ
def βββββββββββββββ(&)
super do
ββββββββββββββ
yield
ββββββ
end
end
β ββββββ βββββ ββββββββ βββ βββ βββββ
def ββββββββββββββ
if βββββ.ββββββ.ββββ
βββ(style: "color: red;") do
ββ { "#{βββββββββ βββββ.ββββββ.βββββ, "error"} prohibited this post from being saved:" }
ββ do
βββββ.ββββββ.ββββ do |βββββ|
ββ { βββββ.ββββββββββββ }
end
end
end
end
end
end
βββββββββ βββ ββββββββ ββββ βββ βββββββββββββ ββββ βββββ ββββββββββββ βββββ ββββ βββββββββ βββββ ββ ββββββ βββ ββββββββ βββββ ββ β βββββββββ βββββββ βββ ββββ ββββ βββββββ βββ βββββββββ βββββ ββββββββ ββββ βββββ ββ β ββββββββ βββββββ ββββββββββββ
Field helpers
βββ βββ ββββββ ββ ββ βββββββ ββββββ ββββββ ββββ βββββ β βββββ ββββββ β βββββ ββββ ββββββ βββ βββ ββββ βββ βββββ ββββββ ββββ βββ βββββββ
ββββββ βββ ββββ.βββββ(:email).βββββ(type: :email)
The around_template
hook
ββββ βββββ ββββ βββββββ ββββ βββ ββββ ββ βββββββ ββ ββββββ ββββ βββββ βββββββββ ββββββ ββββββββ ββ βββββ βββββββββ
Interacting with models on your forms
βββ ββββββββββββββ ββββββ βββββ βββ ββ βββββββ βββββ ββββββββ βββ β βββββ ββ βββββββ βββ βββββ ββββββ ββ βββ βββββ
def ββββββββββββββ
if βββββ.ββββββ.ββββ
βββ(style: "color: red;") do
ββ { "#{βββββββββ βββββ.ββββββ.βββββ, "error"} prohibited this post from being saved:" }
ββ do
βββββ.ββββββ.ββββ do |βββββ|
ββ { βββββ.ββββββββββββ }
end
end
end
end
end
ββ βββββ β βββ ββββ βββ βββββ βββββ ββββββ ββββ βββββββ ββ βββββ ββββββββ ββ ββββββ βββ ββββ ββββββ ββ βββββββββ ββ βββ ββββ βββ ββββ βββ ββββ βββ ββββ ββββββ