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

grape-entity and has_many requires explicit entity

我在 Rails 4.2.1 项目中使用 grapegrape-entity,我 运行 遇到了一个奇怪的错误型号。

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

Grape will automatically detect the Entity class and use it to present your models.

此外,文档中还说:

By default every object of a collection is wrapped into an instance of your Entity class.

这是我现在的代码。

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,它不起作用,仍然暴露地址的所有字段。它没有自动检测到正确实体的任何原因?

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

有一个功能请求提交 here(我也是从那里得到的):