Ruby on rails 将常量属性添加到Grape实体

Ruby on rails 将常量属性添加到Grape实体,ruby-on-rails,rest,grape-entity,Ruby On Rails,Rest,Grape Entity,我正在尝试使用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类添加额外的常量值属

我正在尝试使用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类添加额外的常量值属性?感谢您的帮助

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

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

    private
    def object_name
        "User"
    end
end
class XXX
但如果函数名为object,它将无法工作。您必须为此字段选择其他名称

对于更多选项,您也可以使用这样的块,在本例中,无论您使用的字段名是什么

class XXX < Grape::Entity
    expose :object do |you_have_to_set_a_parameter_here|
                "User"
            end
    expose :email
    expose :name
end
class XXX