2011-09-29 5 views
0

사용자가 보낸 메시지를 표시하려고합니다. 문제는 동일한 테이블에 저장 초안 및 전송 메시지 내용이므로 제가 message.rb에 대한 기능을 호출하려면 다음을 수행하십시오.

def is_sent 
    current_user.drafts.find_by_message_id(:first, self.id).empty? 
end 

에서 is_sent 방법으로 생각 user.rb

has_many :sent_messages, :class_name => "Message", :foreign_key => "user_id", :conditions => [#it has been sent!] 

에서 다음 관계에 조건을 넣을 내 협회의 :condition에서이 방법을 어떻게 호출 할 수 있습니까? 내 메시지 테이블에 저장된 메시지가 전송되었는지 여부를 지정하는 열을 사용하는 것이 더 좋습니까?

감사합니다.

답변

1

은 내가 has_many에서이 조건을 Message에 부울 sent 열을 추가하고 사용합니다 :이 또한 당신의 is_sent 기능을 제거, Message 당신에게 기능 sent?을 줄 것

:conditions => { :sent => true } 

. Ruby에서 함수 이름에 이와 같은 물음표를 사용하는 것은 흔한 일이며, is_은 눈살을 찌푸리게됩니다.

+0

감사! ,,,,,, – Arthur

관련 문제