【发布时间】:2021-07-22 06:46:34
【问题描述】:
正如标题所说,我应该如何使用 Rails 中 Active Model Serializer 中的属性对 api 进行排序?
我有一个由购物清单组成的示例 api。它包括产品名称、位置和价格。在我的序列化器中
class ShoppingListSerializer < ActiveModel::Serializer
attributes :id, :name, :location, :price
def id
Product.find(object.product_id).id
end
def name
Product.find(object.product_id).name
end
def location
Product.find(object.product_id).location
end
def price
Product.find(object.product_id).price
end
end
我想使用属性 name 对其进行排序。我该怎么做?谢谢。
【问题讨论】:
-
对api进行排序,这是什么意思?此外,在每种方法中都执行
Product.find...似乎效率很低。您在这里真正要解决的问题是什么? -
这听起来像是教科书 X & Y 问题。您不会在序列化程序中排序。您也不应该进行数据库查询。序列化程序实际上就像一个视图。它从控制器获取数据并将其转换为 JSON。
标签: ruby-on-rails active-model-serializers