2014-03-06 7 views
0

속성 이름이 항상 메시지에 포함되어 있지만 내 장치 오류 메시지를 사용자 정의하려고합니다. 속성 이름이 Devise Error에 표시됩니다.

나는 이미 내 en.yml 파일을 변경했습니다 :

en: 
    activerecord: 
    errors: 
     models: 
     user: 
      attributes: 
      password: 
       blank: "Error" 
     full_messages: 
     format: "%{message}" 

devise_helper.rb을

module DeviseHelper 
    def devise_error_messages! 
    return "" if resource.errors.empty? 

    messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join 
    sentence = I18n.t("errors.messages.not_saved", 
         count: resource.errors.count, 
         resource: resource.class.model_name.human.downcase) 

    html = <<-HTML 
     <div id="error_explanation"> 
     <h2>#{sentence}</h2> 
     <ul>#{messages}</ul> 
     </div> 
     HTML 
    html.html_safe 
    end 
end 

그래서 표시하는 오류 메시지가 위의 코드에 예를 들어 "비밀번호 오류입니다 " 표시하고 싶을 때 "오류 "

답변

1

OU를 사용해야합니다. full_messages 메서드는 error message의 유효성 검사 앞에 attribute name 앞에 붙습니다.

this SO question이 더 나은 아이디어를 얻을에 대한 내 대답을 참조하십시오

messages = resource.errors.messages.map { |attr,msg| content_tag(:li, msg.join(', ')) }.join 

messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join 

를 교체합니다.

1

Y 당신은 당신의 유증 도우미의 오버라이드 (override) devise_error_messages!에서 full_messages 방법을 요구하고있다

en: 
    errors: 
    format: "%{message}" 
+0

여전히 작동하지 않습니다. –

+0

activerecord도 제거 할 수 있습니까? – Danny

관련 문제