grape-entity и has_many требуют явной сущности

Я использую grape а также grape-entity в проекте Rails 4.2.1, и я сталкиваюсь со странной ошибкой при представлении с использованием правильной модели.

Согласно документации, организация моих сущностей в каждой модели приводит к следующему:

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 ответ

Решение

Оказывается, это ожидаемое поведение. Grape обнаруживает только класс сущностей, который вложен в модель, поэтому он не знает, использовать ли класс сущностей каких-либо связанных записей.

Здесь есть запрос на добавление функции (откуда я и получил это):

Другие вопросы по тегам