2013-01-25 4 views
0

내 모델에이 기능이 있습니다.
그러나 모델은 다형성으로 사용되며 다른 조건을 원합니다.
컨트롤러에서이 작업을 수행하면 어떻게 코드를 작성할 수 있습니까?컨트롤러에서 어떻게 할 수 있습니까?

모델/comment.rb

validates_length_of :body, 
        :within => 10..100, 
        :message => "must be between 10 to 100 characters" 

UPDATE :

난 단지 커뮤니티 모델은 코멘트 모델에 코멘트를 만드는이 검증 조건을 사용하고 싶습니다. 코멘트 모델은 다형성입니다! 댓글 가능 유형 및 댓글 가능 ID가

답변

4

아니요. 컨트롤러에서 이와 같은 작업을 수행 할 수 없습니다. 모델에서 조건을 사용하거나이 모델을 커뮤니티 모델에 넣습니다.

validates_length_of :body, 
        :within => 10..100, 
        :message => "must be between 10 to 100 characters", :if => "community?" 

    def community? 
    return self.commentable_type == "Community" 
    end 
+0

다형성이라면 그렇게 할 수 있습니까? 해당 모델에 2 개 이상의 모델이 액세스하고 있습니다. 하지만 커뮤니티 모델에서 액세스 한 경우에만 유효성을 검사하려고합니다. – MKK

+0

커뮤니티 모델에이 유효성 검증을 적용하십시오. –

+0

제가 언급했듯이,이 모델은 다형성입니다. 나는 이미 일반적인 경우에 대한 유효성을 확인했다. 그러나 하나의 모델 만 다른 조건을 가져야합니다. 그래서 나는 컨트롤러에서 그렇게하려고 노력하고 있습니다. – MKK

0

당신은, 모델 모델에서

+1

질문에 대한 내 업데이트를 확인하십시오! – MKK

0

validates_length_of :body, 
        :when => [ :comment ], 
        :within => 10..100, 
        :message => "must be between 10 to 100 characters" 

을이 작업을 수행해야하고 당신은 당신이 이해하는 데 도움이 될 것이다 (:unless => Community.new { |a| a.comment? })

link 같은 :unless을 사용할 수 있습니다 귀하의 필요에 따라 편집하십시오. 문제를 해결하는 데 단지 idea입니다.

관련 문제