Module: Iron::Entry::ContentAssignable

Extended by:
ActiveSupport::Concern
Included in:
Iron::Entry
Defined in:
app/models/iron/entry/content_assignable.rb

Instance Method Summary collapse

Instance Method Details

#assign_content(content) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/models/iron/entry/content_assignable.rb', line 5

def assign_content(content)
  content_type.field_definitions.each do |definition|
    raw_value = Field.content_fetch(content, definition.handle)

    if raw_value == Field::CONTENT_MISSING
      find_or_build_field(definition, Current.locale) if definition.required?
      next
    end

    field = find_or_build_field(definition, Current.locale)
    field.content_value = raw_value
  end
end

#content_errorsObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/models/iron/entry/content_assignable.rb', line 19

def content_errors
  details = {}

  errors.each do |error|
    next if error.type == :fields_invalid

    attribute = error.attribute.to_s
    next if attribute == "fields" || attribute.start_with?("fields.")

    (details[attribute] ||= []) << error.message
  end

  collect_field_error_details(fields.select { |f| f.parent.nil? }, nil, details)

  details
end