Skip to content

Commit

Permalink
Task #1: Fixing the attribute recognition so we get the right attributes
Browse files Browse the repository at this point in the history
  • Loading branch information
brenes committed Feb 24, 2016
1 parent 712309b commit d4a9b6b
Showing 1 changed file with 9 additions and 12 deletions.
21 changes: 9 additions & 12 deletions lib/postgres_ext/serializers/active_model/array_serializer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,18 +37,15 @@ def _include_relation_in_root(relation, *args)

attributes = serializer_class._attributes

attributes.each do |name, key|
if name.to_s == key.to_s
if _serializer.respond_to? "#{name}__sql"
relation_query = relation_query.select Arel::Nodes::As.new Arel.sql(_serializer.send("#{name}__sql")), Arel.sql(name.to_s)
elsif serializer_class.respond_to? "#{name}__sql"
warn "[DEPRECATION] postgres_ext-serializer - class serializer sql computed properties is deprecated. Please use instance method instead."
relation_query = relation_query.select Arel::Nodes::As.new Arel.sql(serializer_class.send("#{name}__sql", options[:scope])), Arel.sql(name.to_s)
elsif klass.respond_to? "#{name}__sql"
relation_query = relation_query.select Arel::Nodes::As.new Arel.sql(klass.send("#{name}__sql")), Arel.sql(name.to_s)
else
relation_query = relation_query.select(relation_query_arel[name])
end
attributes.each do |name|
if _serializer.respond_to? "#{name}__sql"
relation_query = relation_query.select Arel::Nodes::As.new Arel.sql(_serializer.send("#{name}__sql")), Arel.sql(name.to_s)
elsif serializer_class.respond_to? "#{name}__sql"
relation_query = relation_query.select Arel::Nodes::As.new Arel.sql(serializer_class.send("#{name}__sql")), Arel.sql(name.to_s)
elsif klass.respond_to? "#{name}__sql"
relation_query = relation_query.select Arel::Nodes::As.new Arel.sql(klass.send("#{name}__sql")), Arel.sql(name.to_s)
else
relation_query = relation_query.select(relation_query_arel[name])
end
end

Expand Down

0 comments on commit d4a9b6b

Please sign in to comment.