class RailsAdmin::Config::Fields::Base

Attributes

abstract_model[R]
defined[RW]
name[R]
order[RW]
parent[R]
properties[R]
root[R]
section[RW]

Public Class Methods

new(parent, name, properties) click to toggle source
# File lib/rails_admin/config/fields/base.rb, line 19
def initialize(parent, name, properties)
  @parent = parent
  @root = parent.root

  @abstract_model = parent.abstract_model
  @defined = false
  @name = name.to_sym
  @order = 0
  @properties = properties
  @section = parent
end

Public Instance Methods

association?() click to toggle source

Is this an association

# File lib/rails_admin/config/fields/base.rb, line 227
def association?
  kind_of?(RailsAdmin::Config::Fields::Association)
end
editable?() click to toggle source
# File lib/rails_admin/config/fields/base.rb, line 216
def editable?
  return false if @properties && @properties[:read_only]
  active_model_attr_accessible = !bindings[:object].class.active_authorizer[bindings[:view].controller.send(:_attr_accessible_role)].deny?(self.method_name)
  return true if active_model_attr_accessible
  if RailsAdmin::Config.yell_for_non_accessible_fields
    Rails.logger.debug "\n\n[RailsAdmin] Please add 'attr_accessible :#{self.method_name}' in your '#{bindings[:object].class}' model definition if you want to make it editable.\nYou can also explicitely mark this field as read-only: \n\nconfig.model #{bindings[:object].class} do\n  field :#{self.name} do\n    read_only true\n  end\nend\n\nAdd 'config.yell_for_non_accessible_fields = false' in your 'rails_admin.rb' initializer if you do not want to see these warnings\n\n"
  end
  false
end
errors() click to toggle source

Reader for validation errors of the bound object

# File lib/rails_admin/config/fields/base.rb, line 232
def errors
  ([name] + children_fields).uniq.map do |column_name|
    bindings[:object].errors[column_name]
  end.uniq.flatten
end
html_default_value() click to toggle source
# File lib/rails_admin/config/fields/base.rb, line 295
def html_default_value
  bindings[:object].new_record? && self.value.nil? && !self.default_value.nil? ? self.default_value : nil
end
inspect() click to toggle source
# File lib/rails_admin/config/fields/base.rb, line 300
def inspect
  "#<#{self.class.name}[#{name}] #{
    instance_variables.map do |v|
      value = instance_variable_get(v)
      if [:@parent, :@root, :@section, :@children_fields_registered,
          :@associated_model_config, :@group, :@bindings].include? v
        if value.respond_to? :name
          "#{v}=#{value.name.inspect}"
        else
          "#{v}=#{value.class.name}"
        end
      else
        "#{v}=#{value.inspect}"
      end
    end.join(", ")
  }>"
end
inverse_of() click to toggle source
# File lib/rails_admin/config/fields/base.rb, line 287
def inverse_of
  nil
end
method_name() click to toggle source
# File lib/rails_admin/config/fields/base.rb, line 291
def method_name
  name
end
optional(state = nil, &block) click to toggle source

Inverse accessor whether this field is required.

@see RailsAdmin::Config::Fields::Base.register_instance_option :required?

# File lib/rails_admin/config/fields/base.rb, line 248
def optional(state = nil, &block)
  if !state.nil? || block
    required state.nil? ? proc { false == (instance_eval &block) } : false == state
  else
    optional?
  end
end
optional=(state) click to toggle source

Writer to make field optional.

@see RailsAdmin::Config::Fields::Base.optional

# File lib/rails_admin/config/fields/base.rb, line 259
def optional=(state)
  optional(state)
end
optional?() click to toggle source

Reader whether field is optional.

@see RailsAdmin::Config::Fields::Base.register_instance_option :required?

# File lib/rails_admin/config/fields/base.rb, line 241
def optional?
  not required?
end
parse_input(params) click to toggle source
# File lib/rails_admin/config/fields/base.rb, line 283
def parse_input(params)
  # overriden
end
type() click to toggle source

Reader for field’s type

# File lib/rails_admin/config/fields/base.rb, line 264
def type
  @type ||= self.class.name.to_s.demodulize.underscore.to_sym
end
type_css_class() click to toggle source
# File lib/rails_admin/config/fields/base.rb, line 35
def type_css_class
  "#{type}_type"
end
value() click to toggle source

Reader for field’s value

# File lib/rails_admin/config/fields/base.rb, line 269
def value
  bindings[:object].safe_send(name)
end
virtual?() click to toggle source
# File lib/rails_admin/config/fields/base.rb, line 39
def virtual?
  properties.blank?
end