【发布时间】:2015-07-04 20:40:13
【问题描述】:
我想做与本文相同的技巧 - https://thoughtbot.com/blog/fast-json-apis-in-rails-with-key-based-caches-and,但在 AMS 0.10.0.rc 中是不可能的,因为 AMS 没有 #serializable_hash 方法。
你会建议做什么呢?
【问题讨论】:
标签: ruby-on-rails active-model-serializers
我想做与本文相同的技巧 - https://thoughtbot.com/blog/fast-json-apis-in-rails-with-key-based-caches-and,但在 AMS 0.10.0.rc 中是不可能的,因为 AMS 没有 #serializable_hash 方法。
你会建议做什么呢?
【问题讨论】:
标签: ruby-on-rails active-model-serializers
更新到新版active_model_serializers:
class BusinessDistanceSerializer < ActiveModel::Serializer
attributes :distance
def attributes options = {}, reload = false
data = super
data.reverse_merge! ActiveModel::Serializer.adapter.new(BusinessSerializer.new(object)).serializable_hash
data
end
end
注意reload = false 参数。
【讨论】:
ActiveModelSerializers::Adapter.configured_adapter.new
这就是我的做法。
class BusinessDistanceSerializer < ActiveModel::Serializer
attributes :distance
def attributes options = {}
data = super
data.reverse_merge! ActiveModel::Serializer.adapter.new(BusinessSerializer.new(object)).serializable_hash
data
end
end
【讨论】: