Frage

ich zwei Klassen haben: User und Nachricht. Im Folgenden sind die Definitionen:

class Message < ActiveRecord::Base
  belongs_to  :receiver, :class_name => 'User', :foreign_key  => 'receiver'
  belongs_to  :sender, :class_name   => 'User', :foreign_key  => 'sender'
end

class User < ActiveRecord::Base
  has_many :incoming_messages, :class_name => 'Message', :foreign_key => 'receiver'
  has_many :outgoing_messages, :class_name => 'Message', :foreign_key => 'sender'
end

Wenn ich Nachrichten im Controller bekommen, erhalte ich auch die Benutzerobjekte in

@message.receiver 

und

@message.sender

enthalten Diese Objekte einige Benutzerinformationen (Passwörter, etc.), dass ich, bevor es zu der Ansicht vorbei entfernen möchte (ein JSON-Objekt in meinem Fall). Was ist der beste Weg, dies zu tun?

Vielen Dank für die Hilfe.

War es hilfreich?

Lösung

Wenn Sie manuell die Objekte in der Ansicht Rendering werden, keine Notwendigkeit zu sanieren -. Die Antwort nur die Elemente enthalten, die Sie belichten

Wenn Sie AJAX und to_json verwenden, gibt es mehrere Möglichkeiten, die Informationen zu entfernen. Sie können eine Auswahl in dem Anfang Model.find verwenden, um sicherzustellen, dass die senstive Informationen nicht tatsächlich aus der Abfrage zurückgegeben werden. Siehe Active Record Abfragen -. Auswahl bestimmte Bereiche für mehr

Die Alternative ist die JSON außer Kraft zu setzen selbst macht nur die erforderlichen Felder anzuzeigen, mit:

to_json(:only => [ :column, :column ])
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top