2012-04-17 1 views
4

유효성 검사 기능 내에서 사용자 정의 유효성 검사 오류 메시지에 html을 추가 할 수 있습니까? 예를 들어html로 사용자 정의 유효성 검사 오류 메시지

: 위를하는

class Product < ActiveRecord::Base 
    validates :legacy_code, :format => { :with => /\A[a-zA-Z]+\z/, 
    :message => "Only letters allowed <a href=\"www.example.com\"> Check here </a> " } 
end 

는 단순히 태그를 HTML로 해석 브라우저없이 문자열 리터럴을 제공합니다.

로케일을 사용해 보았지만 좀 더 복잡한 방법으로 보입니다. 나는 많은 웹 사이트를 탐색하고 또한 field_error_proc 메소드를 오버라이드하려고 시도했다. 예를 들어

:

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| 
    errors = Array(instance.error_message).join(',') 
    %(#{html_tag}<span class="validation-error">&nbsp;#{errors}</span>).html_safe 

end 

위의 작품은 그러나 의도 한 것보다 오류 메시지 수의 두 배를 제공합니다.

여기의 도움을 주시면 감사하겠습니다.

<% if @user.errors.any? %> 
    <div id="error_explanation"> 
    <div class="alert alert-error"> 
     The form contains <%= pluralize(@user.errors.count, "error") %>. 
    </div> 
    <ul> 
    <% @user.errors.full_messages.each do |msg| %> 
     <li>* <%= msg.html_safe %></li> 
    <% end %> 
    </ul> 
    </div> 
<% end %> 
+0

raw를 사용

부분 오류 메시지에 .html_safe 사용하여를 해결 소독되지 않은 상태에서 오류 메시지에 무엇이든 넣으십시오. –

답변

4

이 때 출력은 오류, 그냥 사용자가 할 수있는 능력을 가지고 있지 않다는 것을 확인

<%= raw f.errors %> 
+0

안녕 카일, 고마워. 이 명령을 어디에 넣어야합니까? 나는 레일 3.2.3을 사용하고 있으며 폼 뷰에서 다음과 같은 라인을 사용하고있다. <% = render 'shared/error_messages', object : f.object %> – railsnoob123

+0

에러 메시지 부분적으로는? 'app/views/shared/_error_messages. *' –

+0

안녕 카일, 고마워! 내가 한 것은 위의 편집 된 질문에서와 같이 오류 메시지에서 .html_safe 명령을 사용하는 것이 었습니다. 너는 맞다, 나는 부분 error_messages 파일을 편집해야한다 :) 2 개의 위로 엄지! – railsnoob123

관련 문제