2013-06-24 2 views
0

사용자에게 속한 게시물 모델이 있습니다.
다음과 같이 사용자 이름을 표시합니다. @post.user.name 사용자가 계정을 취소하면 사용자가 없으므로 더 이상 작동하지 않습니다.
대체 사용자 (예 : '삭제 된 사용자')를 사용할 수 있나요?중첩 된 리소스에 대한 대체 파일

사용자를 삭제하는 대신 비활성화하는 것이지만, 경우에 따라 삭제하려는 경우가 있습니다.

답변

0

당신이

class NullAuthor 
    def name 
    "Deleted user" 
    end 
end 

같은 것을 구현할 수있는 당신은 당신이 결코 없다, 이런 방식으로 액티브 모델

class Post < ActiveRecord::Base 
    belongs_to :user 

    def author 
    @author ||= if user.present? 
        user 
       else 
        NullAuthor.new 
       end 
    end 
end 

내에서 다음과 같이 사용할 것, 널 패턴이라는 개념이있다 게시물 사용자가 0이 아닌지 확인하려면 :)

+0

굉장! 고맙습니다. 삭제할 수없는 (자리 표시 자) 사용자에게 설정이 끝났습니다. – jomo

관련 문제