mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-25 15:23:06 +00:00
Initialize fieldset.
This commit is contained in:
@@ -44,13 +44,7 @@ module ActiveModel
|
|||||||
def initialize(serializer, options = {})
|
def initialize(serializer, options = {})
|
||||||
super
|
super
|
||||||
@include_tree = IncludeTree.from_include_args(options[:include])
|
@include_tree = IncludeTree.from_include_args(options[:include])
|
||||||
|
@fieldset = options[:fieldset] || ActiveModel::Serializer::Fieldset.new(options.delete(:fields))
|
||||||
fields = options.delete(:fields)
|
|
||||||
if fields
|
|
||||||
@fieldset = ActiveModel::Serializer::Fieldset.new(fields)
|
|
||||||
else
|
|
||||||
@fieldset = options[:fieldset]
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def serializable_hash(options = nil)
|
def serializable_hash(options = nil)
|
||||||
@@ -175,7 +169,7 @@ module ActiveModel
|
|||||||
|
|
||||||
def relationships_for(serializer)
|
def relationships_for(serializer)
|
||||||
resource_type = resource_identifier_type_for(serializer)
|
resource_type = resource_identifier_type_for(serializer)
|
||||||
requested_associations = fieldset.try(:fields_for, resource_type) || '*'
|
requested_associations = fieldset.fields_for(resource_type) || '*'
|
||||||
include_tree = IncludeTree.from_include_args(requested_associations)
|
include_tree = IncludeTree.from_include_args(requested_associations)
|
||||||
serializer.associations(include_tree).each_with_object({}) do |association, hash|
|
serializer.associations(include_tree).each_with_object({}) do |association, hash|
|
||||||
hash[association.key] = { data: relationship_value_for(association.serializer, association.options) }
|
hash[association.key] = { data: relationship_value_for(association.serializer, association.options) }
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ module ActiveModel
|
|||||||
class Serializer
|
class Serializer
|
||||||
class Fieldset
|
class Fieldset
|
||||||
def initialize(fields)
|
def initialize(fields)
|
||||||
@raw_fields = fields
|
@raw_fields = fields || {}
|
||||||
end
|
end
|
||||||
|
|
||||||
def fields
|
def fields
|
||||||
@@ -21,7 +21,7 @@ module ActiveModel
|
|||||||
|
|
||||||
def parsed_fields
|
def parsed_fields
|
||||||
if raw_fields.is_a?(Hash)
|
if raw_fields.is_a?(Hash)
|
||||||
raw_fields.inject({}) { |h, (k, v)| h[k.to_sym] = v.map(&:to_sym); h }
|
raw_fields.each_with_object({}) { |(k, v), h| h[k.to_sym] = v.map(&:to_sym) }
|
||||||
else
|
else
|
||||||
{}
|
{}
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user