Custom Form Builders
You can also easily build your own FormBuilder which allows for customized fields and behavior:
class MyCustomFormBuilder < AbstractFormBuilder # Here we have access to a number of useful variables # # ** template (use this to invoke any helpers)(ex. template.hidden_field_tag(...)) # ** object (the record for this form) (ex. object.valid?) # ** object_name (object's underscored type) (ex. object_name => 'admin_user') # # We also have access to self.field_types => [:text_field, :text_area, ...] # In addition, we have access to all the existing field tag # helpers (text_field, hidden_field, file_field, ...) end
Once a custom builder is defined, any call to
form_for can use the new builder:
= form_for @user, '/register', :builder => 'MyCustomFormBuilder', :id => 'register' do |f| ...fields here...
The form builder can even be made into the default builder when
# anywhere in the Padrino or Sinatra application set :default_builder, 'MyCustomFormBuilder'
And there you have it, a fairly complete form builder solution for Padrino (and Sinatra).
last updated: 2019-01-14comments powered by Disqus