2010-12-18 2 views
1

두 가지 클래스가 있습니다. 사용자와 메시지입니다. 내가 컨트롤러에 메시지를받을 때레일에서 belongs_to로 얻은 오브젝트를 위생 처리하는 방법 3

 
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 

, 나는 또한 이러한 개체가 일부 사용자 정보를 포함

@message.receiver

@message.sender

에서 사용자 개체를 얻을 수 (암호 : 다음은 정의입니다 등)보기 (json 개체를 내 사건에 전달하기 전에 제거 할 싶습니다. 이 일을하는 가장 좋은 방법은 무엇입니까?

도움 주셔서 감사합니다.

답변

1

보기에서 개체를 수동으로 렌더링하는 경우 위생을 수행 할 필요가 없습니다. 응답에는 노출 한 요소 만 포함됩니다.

AJAX 및 to_json을 사용하는 경우 정보를 제거하는 방법에는 여러 가지가 있습니다. 초기 Model.find에서 select를 사용하여 상속 정보가 실제로 쿼리에서 반환되지 않도록 할 수 있습니다. 자세한 내용은 Active Record Querying - selecting specific fields을 참조하십시오.

대안은 사용 만 표시 필수 필드 자체를 렌더링 JSON을 무시하는 것입니다

to_json(:only => [ :column, :column ]) 
+0

예, 좋은 제안, 감사합니다! :) –

관련 문제