Sto costruendo un Rest API utilizzando rails-api e active-model-serializer per filtrare facilmente i campi richiesti nel JSON. Sto anche usando l'associazione has_one
in questi serializzatori. Tutto quello che volevo sapere è come specificare un nome di chiave diverso per l'attributo has_one
.Utilizzo di un nome chiave diverso per un attributo di associazione in rails api serializzatore modello attivo
Cioè, ho due modelli dire: Employee
e Address
, e c'è un has_one :address
nel dire EmployeeSerializer
. La risposta che ottengo è:
{
id: 1,
address: {
street: "some_street",
city: "some_city"
}
}
Ma mi piacerebbe ottenere la seguente risposta:
{
id: 1,
stays: {
street: "some_street",
city: "some_city"
}
}
Ho provato ad utilizzare has_one :address, :key => :stays
, ma questo non sembra funzionare.
Quale versione di AMS si usa? Non ho familiarità con la base di codice, ma da un rapido sguardo l'argomento 'key' sembra non essere stato incluso in tutti i recenti. Come soluzione, prova a definire 'has_one: stays' insieme a' def stays; object.address; FINE'. – janfoeh
@janfoeh Sto usando la versione 0.9.0.Inoltre sto usando un serializzatore differente per l'associazione. cioè, has_one: indirizzo, chiave: 'status', serializzatore: MyAddressSerializer'. Sta prendendo gli attributi da 'MyAddressSerializer' ma la chiave di attributo è ancora' address' – swaroopsm
Ah. Se leggo correttamente le [modifiche tra 0.9.0 e 0.9.1] (https://github.com/rails-api/active_model_serializers/compare/v0.9.0...v0.9.1), l'argomento è stato chiamato 'embed_key 'in 0.9.0, non' chiave'. – janfoeh