From 0daa8184d4d1a33176878844b682d316bd45aa5e Mon Sep 17 00:00:00 2001 From: Albert Yi Date: Thu, 18 Apr 2019 12:54:11 -0700 Subject: [PATCH] handle `include` param for `as_json` and `to_xml` --- app/models/application_record.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/models/application_record.rb b/app/models/application_record.rb index 62298b121..631cc36a9 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -150,6 +150,8 @@ class ApplicationRecord < ActiveRecord::Base def as_json(options = {}) options ||= {} + options[:include] ||= [] + options[:except] ||= [] options[:except] += hidden_attributes @@ -166,6 +168,7 @@ class ApplicationRecord < ActiveRecord::Base if options[:only] options[:methods] = options[:methods] & options[:only] + options[:include] = options[:include] & options[:only] end super(options) @@ -174,6 +177,8 @@ class ApplicationRecord < ActiveRecord::Base def to_xml(options = {}, &block) options ||= {} + options[:include] ||= [] + options[:except] ||= [] options[:except] += hidden_attributes @@ -190,6 +195,7 @@ class ApplicationRecord < ActiveRecord::Base if options[:only] options[:methods] = options[:methods] & options[:only] + options[:include] = options[:include] & options[:only] end super(options, &block)