Einschränken bestimmter Felder in der Antwort des Schienen-Controllers

7

Ich habe eine Controller-Aktion wie

%Vor%

Video hat die Attribute name und title .

Ich möchte, dass das Rückgabe-XML nur title enthält.

Wie schränke ich es von der Antwort ein.

    
Sarvesh 02.08.2011, 21:52
quelle

4 Antworten

24

Mach es so:

%Vor%

Sie können weitere Informationen über diese unter die Serialisierung Dokumentation finden.

    
Maurício Linhares 02.08.2011 21:59
quelle
11

Sie können eine select -Klausel für Ihre Video.all -Abfrage verwenden, indem Sie die Felder angeben, die Sie einschließen möchten.

%Vor%

Sie sollten auch to_a für Ihre Abfrage nicht aufrufen müssen.

    
Dylan Markow 02.08.2011 21:59
quelle
2

Sie können Ihre eigene .to_xml -Methode in video.rb ,

definieren

z.B.:

%Vor%

Und dann respond_with(@videos) in Ihrem Controller aufrufen.

Siehe ähnliche Fragen .

    
jpemberthy 02.08.2011 22:53
quelle
-1

Ein schneller Weg wäre, : pluck zu verwenden, wenn Sie gerade ein Array von Titeln zurückgeben (ich rate nein: id), dann wäre das sehr schnell

%Vor%

: rupfen ist viel schneller als alle anderen Optionen, weil es ein Array mit den angeforderten Daten zurückgibt. Es instanziiert nicht ein gesamtes ActiveRecord-Objekt für jede Datenbankzeile. Wegen seines Rubins sind diese Instanziierungen die meiste Zeit. Sie können auch Folgendes tun:

%Vor%

Wenn Sie Ihren SQL-Stift nicht raushaben wollen, ist das ziemlich gut

    
Jon 16.02.2016 06:39
quelle

Tags und Links