在spree API应用程序中,我想仅在用户为product
时呈现admin
的关联注释。否则只需渲染product
详细信息。
我正在使用0.10.0.rc2
active_model_serializers
gem 'active_model_serializers', '~> 0.10.0.rc2'
我按照以下方式覆盖了product
狂欢的序列化程序:
Spree::ProductSerializer.class_eval do
attributes :stock_available
has_many :comments, serializer: MyApplication::CommentSerializer
# http://www.rubydoc.info/gems/active_model_serializers#Associations
def filter(keys) # <--- Option 1
keys.delete(:comments) unless scope.admin?
keys
end
def include_comments? # <--- Option 2
scope.admin?
end
end
这里comments
是一个多态表。然而,这两个选项中没有一个似乎有效。这里有什么想法错了吗?
我在active-model-serializer上浏览了RailsCast episode。但它似乎并没有在这里工作。
同样奇怪的是,当我将binding.pry
放入这两种方法中的任何一种时,/api/products/:id
处的请求都不会在binding.pry
暂停。
由于