5
Bazı JSON Verilerini, Phoenix'teki API Çağrılarımdan birine geri döndürmeye çalışıyorum. Subject
tüm kayıtlarını alıyorum ve onları gönderiyor ama Ecto
istemediğim bazı ek alanlar döndürüyor.Phoenix'te Ecto'yu kullanarak veri getirirken yalnızca belirli alanları al
ben ne yapabilirim için:
- sadece belirli özelliklerini (Örn sadece
id
vename
) alın - Değil olsun benim tepki olarak gereksiz alanlar
(örneğin
__meta__
olarak ve
__owner__
)
Bu benim Controller
adresim:
Bubenim View
geçerli:
[
{
"teachers": {
"__owner__": "Elixir.MyApp.Subject",
"__field__": "teachers",
"__cardinality__": "many"
},
"updated_at": "2015-06-20T15:32:20Z",
"topics": {
"__owner__": "Elixir.MyApp.Subject",
"__field__": "topics",
"__cardinality__": "many"
},
"name": "Physics",
"inserted_at": "2015-06-20T15:32:20Z",
"id": 1,
"__meta__": {
"state": "loaded",
"source": "subjects"
}
},
{
"teachers": {
"__owner__": "Elixir.MyApp.Subject",
"__field__": "teachers",
"__cardinality__": "many"
},
"updated_at": "2015-06-20T15:37:59Z",
"topics": {
"__owner__": "Elixir.MyApp.Subject",
"__field__": "topics",
"__cardinality__": "many"
},
"name": "Chemistry",
"inserted_at": "2015-06-20T15:37:59Z",
"id": 2,
"__meta__": {
"state": "loaded",
"source": "subjects"
}
},
{
"teachers": {
"__owner__": "Elixir.MyApp.Subject",
"__field__": "teachers",
"__cardinality__": "many"
},
"updated_at": "2015-06-20T15:38:41Z",
"topics": {
"__owner__": "Elixir.MyApp.Subject",
"__field__": "topics",
"__cardinality__": "many"
},
"name": "Mathematics",
"inserted_at": "2015-06-20T15:38:41Z",
"id": 3,
"__meta__": {
"state": "loaded",
"source": "subjects"
}
},
{
"teachers": {
"__owner__": "Elixir.MyApp.Subject",
"__field__": "teachers",
"__cardinality__": "many"
},
"updated_at": "2015-06-22T15:40:17Z",
"topics": {
"__owner__": "Elixir.MyApp.Subject",
"__field__": "topics",
"__cardinality__": "many"
},
"name": "Biology",
"inserted_at": "2015-06-22T15:40:17Z",
"id": 4,
"__meta__": {
"state": "loaded",
"source": "subjects"
}
}
]
Cevabınız için teşekkürler. Belirli alanları nasıl seçeceğimi anlıyorum, ancak belirli bir alanı reddetmek ve her şeyi almak istersem. Örneğin, yukarıdaki örnekte 'öğretmenler' ve 'konular' istemiyorsam. – Sheharyar
'Map.take/2'' Map.drop/2' olarak değiştirin. Tüm harita fonksiyonlarını http://elixir-lang.org/docs/stable/elixir/ adresinde bulabilirsiniz. –