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