Я использую grape
и grape-entity
в проекте Rails 4.2.1, и у меня возникает странная ошибка с представлением с использованием правильной модели.grape-entity и has_many требует явного объекта
Согласно the documentation, организуя свои объекты в рамках каждой модели результатов в этом:
виноград автоматически определяет класс сущностей и использовать его, чтобы представить свои модели.
Кроме того, в документации также говорит:
По умолчанию каждый объект коллекции заворачивают в экземпляр вашего класса 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
, он не работает, и до сих пор обнажает все поля адреса. По какой-либо причине он автоматически не обнаруживает правильный объект?
Я думаю, что это происходит потому, что это просто синтаксический анализатор. Это не связано напрямую с Active Record. Кстати, вы можете использовать любой объект вместо одного из Active Record. Поэтому, если вы, например, разбираете хэш с целым числом и строкой, он должен работать, независимо, если он предоставлен из базы данных или нет. –