Module: ActiveModel::AsJsonFilter
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/active_model_as_json_filter.rb
Defined Under Namespace
Classes: AsJsonOptions
Constant Summary collapse
- OptionMethods =
默认公共字段配置
以下是个属性在配置时直接覆盖即可。
[:default_only_fields, :default_except_fields, :default_methods_fields]
Instance Method Summary collapse
-
#as_json(options = {}) ⇒ Object
InstanceMethods.
Instance Method Details
#as_json(options = {}) ⇒ Object
InstanceMethods
60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/active_model_as_json_filter.rb', line 60 def as_json = {} # 1. 配置参数 _o = {} AsJsonOptions::OptionFields.each do |field| _v = Array(self.class..send(field)).flatten.to_a.map(&:to_sym) _o[field] = _v if not _v.empty? end result = super _o.merge() # 2. 两次全局和局部回调 result = ActiveModel::AsJsonFilter.finalizer_proc.call(result) result = self.class..finalizer_proc.call(result, self) return result end |