class DefaultForm::FormBuilder
Attributes
error_css[R]
offset_css[R]
on_options[R]
origin_css[R]
params[R]
theme[R]
wrap_css[R]
Public Class Methods
new(object_name, object, template, options)
click to toggle source
Calls superclass method
# File lib/default_form/form_builder.rb, line 13 def initialize(object_name, object, template, options) if options.key?(:theme) @theme = options[:theme].to_s else @theme = 'default' end set_file = Rails.root.join('config/default_form.yml').existence || RailsCom::Engine.root.join('config/default_form.yml') set = YAML.load_file set_file settings = set.fetch(theme, {}) settings.deep_symbolize_keys! options[:method] = settings[:method] if !options.key?(:method) && settings.key?(:method) options[:local] = true # todo rails 6.2 will remove this options[:data] ||= {} if options[:data][:controller].present? options[:data][:controller] += ' default_valid' else options[:data][:controller] = 'default_valid' end @origin_css = settings.fetch(:origin, {}).merge options.fetch(:origin, {}) @wrap_css = settings.fetch(:wrap, {}).merge options.fetch(:wrap, {}) @error_css = settings.fetch(:error, {}).merge options.fetch(:error, {}) @offset_css = settings.fetch(:offset, {}).merge options.fetch(:offset, {}) @on_options = settings.extract! :autocomplete, :autofilter, :placeholder, :label @on_options.merge! options.slice(:placeholder, :label, :autocomplete, :autofilter) @params = template.params _values = Hash(params.permit(object_name => {})[object_name]) if object.is_a?(ActiveRecord::Base) object.assign_attributes _values.slice(*object.attribute_names) end if options[:class].to_s.start_with?('new_', 'edit_') options[:class] = origin_css[:form] end options[:class] = origin_css[:form] unless options.key?(:class) super end
Public Instance Methods
submit_default_value()
click to toggle source
Calls superclass method
# File lib/default_form/form_builder.rb, line 54 def submit_default_value I18n.t "helpers.submit.#{theme}", raise: true rescue super end