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 обнаруживает только класс сущностей, который вложен в модель, поэтому он не знает, использовать ли класс сущностей каких-либо связанных записей.
Здесь есть запрос на добавление функции (откуда я и получил это):