class Adminable::Fields::Base
Base
class for fields @note Cannot be initialized
Attributes
name[R]
@return [Symbol] field name
options[R]
@return [Hash] default options for field
Public Class Methods
new(name, options = {})
click to toggle source
@param name [Symbol] field name e.g. ‘:id` or `:title` @param options [Hash] options, see {default_options}
# File lib/adminable/fields/base.rb, line 14 def initialize(name, options = {}) raise 'Base class cannot be initialized' if self.class == Base @name = name.to_sym @options = default_options.merge(options) end
Public Instance Methods
form_partial_path()
click to toggle source
@return [String] path to field form partial
# File lib/adminable/fields/base.rb, line 50 def form_partial_path "form/#{type}" end
index_partial_path()
click to toggle source
@return [String] path to field index partial
# File lib/adminable/fields/base.rb, line 45 def index_partial_path "index/#{type}" end
key()
click to toggle source
@return [Symbol] field form key
# File lib/adminable/fields/base.rb, line 22 def key @key ||= name end
ransack_name()
click to toggle source
@return [String] ransack form key
# File lib/adminable/fields/base.rb, line 32 def ransack_name @ransack_name ||= "#{name}_cont" end
strong_parameter()
click to toggle source
@return [Symbol] controller strong parameters key
# File lib/adminable/fields/base.rb, line 27 def strong_parameter @strong_parameter ||= key end
type()
click to toggle source
@return [Symbol] field type @example
Adminable::Fields::String.new(:title).type # => :string
# File lib/adminable/fields/base.rb, line 40 def type @type ||= self.class.name.demodulize.underscore.to_sym end
Private Instance Methods
default_options()
click to toggle source
# File lib/adminable/fields/base.rb, line 56 def default_options { index: true, form: true, wysiwyg: false, search: false, required: false, center: %i(integer boolean float decimal).include?(type) } end