3

我正在尝试使用 Rails 和 Grape 构建一组 API。用户模型如下:

{
    "email": "foo@bar.com"
    "name": "Foo Bar"
}

现在,在 API 表示级别,我希望用户对象如下:

{
    "object": "User"
    "email": "foo@bar.com"
    "name": "Foo Bar"
}

由于我使用 Grape Entity gem 来公开我的模型,因此问题实际上是:如何向 Grape Entity 类添加额外的 CONSTANT-value 属性?感谢你的帮助!

4

1 回答 1

5

您可以通过向类添加一个函数来添加一个额外的字段,如下所示:

class XXX < Grape::Entity
    expose :object_name
    expose :email
    expose :name

    private
    def object_name
        "User"
    end
end

但是如果函数的名称是对象,它将不起作用。您已为此字段选择了另一个名称。

对于更多选项,您也可以使用这样的块,在这种情况下,无论您使用什么字段名称。

class XXX < Grape::Entity
    expose :object do |you_have_to_set_a_parameter_here|
                "User"
            end
    expose :email
    expose :name
end
于 2014-12-22T10:54:05.800 回答