2012-04-26 6 views
9

사용자 정의 유효성 검사기가 있는데 오류가 발생했지만 오류 메시지가 출력 될 수 있지만 출력 할 수 없습니다. 누군가 내가 정확한 장소에서 이것을하고 있는지 말해 줄 수 있습니까?사용자 정의 유효성 검사기에 오류 메시지 추가

class User < ActiveRecord::Base 
    self.table_name = "user" 

    attr_accessible :name, :ip, :printer_port, :scanner_port 

    validates :name,  :presence => true, 
          :length => { :maximum => 75 }, 
          :uniqueness => true       

    validates :ip,   :length => { :maximum => 75 }, 
          :allow_nil => true  

    validates :printer_port, :presence => true, :if => :has_association? 

    validates :scanner_port, :presence => true, :if => :has_association?   

    def has_association? 
    ip != nil 
    end 
end 

나는 다음과 같이했다 :

validates :printer_port, :presence => true, :message => "can't be blank", :if => :has_wfm_association? 

을하지만 오류

Unknown validator: 'MessageValidator' 

을받는 내가 발리의 끝 부분에 메시지를 넣으려고 할 때 콤마를 오토넷 has_association?

validates :printer_port, :presence => {:message => "can't be blank", :if => :has_wfm_association?} 

단일 라인에서 여러 검증을로드 할 수 있기 때문입니다 :

답변

17

messageif 매개 변수 presence의 해시 내부에 있어야한다 물음표와 쉼표 오렌지를 설정하는

validates :foo, :presence => true, :uniqueness => true 

그런 식으로 메시지를 추가하려고 시도하거나 if 조건을 적용하면 Rails는 메시지/조건부를 적용 할 유효성을 알 수 없습니다. 따라서 메시지 대신 검증을 설정해야합니다.

validates :foo, :presence => {:message => "must be present"}, 
       :uniqueness => {:message => "must be unique"} 
+0

실제 진술을 포함 할 필요가 없습니까? 내가 이럴 때? 그리고 해시의 끝은 함께 달리고 오렌지색으로 변합니다. – Jay

+0

방금 ​​공간을 넣을 필요가있어, 당신의 도움에 감사 Dylan 대단히 감사 : – Jay

+0

어떻게 받아 들일 수 있습니까? – Jay