Я создаю Rest API с помощью rails-api и active-model-serializer, чтобы легко отфильтровать необходимые поля в JSON. Я также использую ассоциацию has_one
в этих сериализаторах. Все, что я хотел знать, это как указать другое имя ключа для атрибута has_one
.Использование другого имени ключа для атрибута ассоциации в rails api active model serializer
То есть, я две модели говорят: Employee
и Address
, и есть в has_one :address
скажем EmployeeSerializer
. Ответ, который я получаю:
{
id: 1,
address: {
street: "some_street",
city: "some_city"
}
}
Но я хотел бы получить следующий ответ:
{
id: 1,
stays: {
street: "some_street",
city: "some_city"
}
}
Я попытался с помощью has_one :address, :key => :stays
, но это не похоже на работу.
Какую версию AMS вы используете? Я не знаком с базой кода, но из-за быстрого взгляда аргумент 'key', похоже, не был включен во все последние. В качестве обходного пути попробуйте определить 'has_one: остается 'вместе с' def stay; object.address; end'. – janfoeh
@janfoeh Я использую версию 0.9.0.Также я использую другой сериализатор для ассоциации. то есть 'has_one: адрес, ключ: 'статус', serializer: MyAddressSerializer'. Он берет атрибуты из «MyAddressSerializer», но ключ атрибута по-прежнему является «адресом» – swaroopsm
Ah. Если я правильно прочитал [изменения между 0.9.0 и 0.9.1] (https://github.com/rails-api/active_model_serializers/compare/v0.9.0...v0.9.1), аргумент был вызван 'embed_key 'в 0.9.0, а не' key'. – janfoeh