我在使用rails-api和active-model-serializer來構建Rest API以輕鬆過濾JSON中的必需字段。我也在這些序列化程序中使用has_one
關聯。我只想知道如何爲has_one
屬性指定不同的鍵名稱。在rails api活動模型串行器中爲關聯屬性使用不同的鍵名稱
也就是說,我有兩個模型說: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的?我並不熟悉代碼庫,但從簡單的角度來看,他們的「關鍵」論點似乎並未包含在所有最新的代碼中。作爲一種解決方法,嘗試將'has_one:stays'和'def stay'一起定義; object.address; end'。 – janfoeh
@janfoeh我正在使用0.9.0版本。此外,我正在使用不同的序列化程序進行關聯。即'has_one:address,key:'status',序列化程序:MyAddressSerializer'。它從MyAddressSerializer獲取屬性,但屬性鍵仍然是地址 – swaroopsm
啊。如果我正確讀取[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中,而不是'鑰匙'。 – janfoeh