grape-entity和has_many需要明确的实体

时间:2015-10-26 06:05:08

标签: ruby-on-rails grape grape-api grape-entity

我在Rails 4.2.1项目中使用grapegrape-entity,并且在使用正确的模型时遇到了一个奇怪的错误。

根据the documentation,在每个模型中组织我的实体会产生以下结果:

  

Grape会自动检测Entity类并使用它来展示你的模型。

此外,文档还说:

  

默认情况下,集合的每个对象都包含在Entity类的实例中。

这是我现在的代码。

class User < ActiveRecord::Base
  class Entity < Grape::Entity
    expose :id, :name
    expose :addresses
  end
end

class Address < ActiveRecord::Base
  class Entity < Grape::Entity
    expose :id, :street1
  end
end

如果我没有expose :addresses, with: Address:Entity,它就不起作用,仍然会公开地址的所有字段。是什么原因它没有自动检测到正确的实体?

1 个答案:

答案 0 :(得分:0)

原来这是预期的行为。 Grape只检测嵌套在模型中的实体类,因此它不知道使用任何相关记录的实体类。

有一个功能请求here(这也是我从中得到的):