복붙노트

[RUBY-ON-RAILS] 레일 - 고안 - 처리 - devise_error_messages을

RUBY-ON-RAILS

레일 - 고안 - 처리 - devise_error_messages을

다음과 같이 내 사용자 편집 페이지에서, 라인이있다 :

<%= devise_error_messages! %>

문제는이 응용 프로그램의 나머지를 출력하지 않는 오류가 표준 방법을 수행입니다 :

<% flash.each do |key, value| %>
    <div class="flash <%= key %>"><%= value %></div>
<% end %>

어떻게이 flash.each을 사용하여 다른 사람처럼 작동하도록 고안 에러 메시지가 뜹니다되어 내 질문?

감사.

해결법

  1. ==============================

    1.나 자신에서이 문제를 내려고 노력하고있어. 난 그냥 Github에서 로그온이 문제를 발견 https://github.com/plataformatec/devise/issues/issue/504/#comment_574788

    나 자신에서이 문제를 내려고 노력하고있어. 난 그냥 Github에서 로그온이 문제를 발견 https://github.com/plataformatec/devise/issues/issue/504/#comment_574788

    호세는 devise_error_messsages을 말하고있다! 방법은 단지 그루터기 (이 구현이 포함되어 있지만) 우리가 오버라이드 (override)되어 있다는 것을 / 교체하십시오. 이것은 내가 추측 한 우리와 같은 몇몇 사람들이 생각 왜 위키, 어딘가 지적 된 경우 좋았을 것이다.

    내가 효과적으로 기본 구현을 재정의하는 방법을 모듈을 다시 열어 및 재정거야 그래서. 난 당신이 어떻게되는지 알려 드리겠습니다.

    그래, 그 작동합니다. 내가 만든 응용 프로그램 / 헬퍼 / devise_helper.rb 및 오버라이드 너무 좋아한다 :

    module DeviseHelper
      def devise_error_messages!
        'KABOOM!'
      end
    end
    

    이 알고 그래서, 디스플레이 오류 메시지에 내가 원하는 방식으로 방법을 수정할 수 있습니다.

    도움말을 당신은 원래 문제를 해결 : 여기 Github에서의 원래 devise_helper.rb입니다. 오류 메시지가 통과되는 방법을 살펴보십시오 :

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

    그것은 당신이 시작하는 데 도움이됩니다. :)

    자원 객체는 실제로 유증 (이동 그림)에서 사용하고있는 모델입니다.

    resource.class         #=> User
    resource.errors.class  #=> ActiveModel::Error
    

    그것은 다양한 장소에 액세스 할 수 있도록 또한, 높은 범위 (아마도 컨트롤러에서 오는)에 정의 된 것으로 보인다.

    당신의 도우미 어디서나

    module DeviseHelper
      def devise_error_messages1!
        resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
      end
    
      def devise_error_messages2!
        resource.errors.full_messages.map { |msg| content_tag(:p, msg) }.join
      end
    end
    

    보기

    <div><%= resource.errors.inspect %></div>
    
  2. ==============================

    2.솔루션 (4.1.1) 지금과 같은 최신 유증으로 작동 4.2.6 레일 아래. 하지만 그것은 지금부터 10 년 작동하지 않을 이유가 표시되지 않도록 간단하다)

    솔루션 (4.1.1) 지금과 같은 최신 유증으로 작동 4.2.6 레일 아래. 하지만 그것은 지금부터 10 년 작동하지 않을 이유가 표시되지 않도록 간단하다)

    당신이 당신의 오류 메시지를 재활용하고 싶은 경우 그들에게 나는 이런 식으로 뭔가 (내가 마이클 하틀의 혀에 배운 방법)을 추천 할 것입니다 귀하의 응용 프로그램에서 동일한 모양 :

    오류 메시지에 대한 부분 만들기 :     코드를 (여기 좀 부트 스트랩 3 개 클래스를 사용) 다음 내부 레이아웃 / _error_messages.html.erb을 넣어 :

    <% if object.errors.any? %>
      <div id="error_explanation">
        <div class="alert alert-danger alert-dismissable">
          <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
          <p><strong>This form contains <%= pluralize(object.errors.count, 'error') %>.</strong></p>
          <ul>
            <% object.errors.full_messages.each do |msg| %>
              <li><%= msg %></li>
            <% end %>
          </ul>
        </div>
      </div>
    <% end %>
    

    지금 당신은 뭔가 재활용이 있고 보드를 통해 사용할 수 있습니다. 대신 표준 유증의 :

    <%= devise_error_messages! %>
    

    이 같은 양식에 전화 :

    <%= render 'layouts/error_messages', object: resource %>
    

    당신은 어떤 형태로 넣을 수 있습니다. 대신 유증 자원을 전달하는이 같은 폼에서 변수를 전달할 수 있습니다 :

    <%= form_for @post do |f| %>
      <%= render 'layouts/error_messages', object: f.object %>  
      <%= f.text_field :content %>
      <%= f.submit %>
    <% end %>
    
  3. ==============================

    3.나는이 질문이 게시 된 이후 그 동안이었다 알고 있지만 난 그냥 내가 찾은 무엇인지에 대한 언급을 원했다. 이미 대답 한 두 사람은 나에게 엄청난 도움이되었습니다 난 그냥 기여하고 싶었다.

    나는이 질문이 게시 된 이후 그 동안이었다 알고 있지만 난 그냥 내가 찾은 무엇인지에 대한 언급을 원했다. 이미 대답 한 두 사람은 나에게 엄청난 도움이되었습니다 난 그냥 기여하고 싶었다.

    당신은 with_scope 렌더링 사용하여 통화가 해당 장치를 통해 볼 수 있습니다. 나는이 유증에 의해 정의 된 방법이며 기본적으로 렌더링 된 다음 뷰에 현재 범위를 적용 믿습니다.

    왜 이런 일이 관련이? 유증은 resource.errors 내에서 오류를 (하지 resource.errors @)가 포함되어 있습니다. 당신이 상자의 그것을 사용하려는 경우 고안 말하자면, 잘 작동합니다.

    당신이 당신의 사용자 관리 동작을 변경 시작하면 이러한 오류 문제가 발생한다. 유증 이전을하지 않은 곳에 redirect_to를 추가하거나 (대신 render_with_scope의) 렌더링하면 기본적으로 오류 메시지를 던지기하고 있습니다. 이것은 내 의견으로는, 수정 궁리가 쌀쌀합니다.

    내 솔루션이 있습니다

    # In application.html.erb
    <% flash.each do |name, msg| %>
    
      # New code (allow for flash elements to be arrays)
      <% if msg.class == Array %>
        <% msg.each do |message| %>
          <%= content_tag :div, message, :id => "flash_#{name}" %>
        <% end %>
      <% else %>
    
        # old code
        <%= content_tag :div, msg, :id => "flash_#{name}" %>
    
      <% end %> #don't forget the extra end
    <% end %>
    

    # Wherever you want Devise's error messages to be handled like 
    # your other error messages
    # (in my case, registrations_controller.rb, a custom controller)
    flash[:notice] = flash[:notice].to_a.concat resource.errors.full_messages
    

    후자 코드 블록 배열로 고안의 오류 메시지를 받아이 플래시 추가 [: 예고 (배열로). 각 메시지는 한 번에 하나 개의 라인을 인쇄됩니다. 나는 시간이 있다면, 나는 고안이 내 응용 프로그램을 통해이 작업을 수행하는 오류 메시지를 처리하는 방법을 대신 둘 중 하나 오류 메시지 시스템이 훨씬 청소기를 보인다 변경하는 것 같네요.

  4. ==============================

    4.난 그냥 여기에 새로운 작은 조각을 가지고 싶어 :

    난 그냥 여기에 새로운 작은 조각을 가지고 싶어 :

    나는 "AnApprentice는"원하는 결과를 얻을 수있는 쉬운 방법을 발견 그래서.

    당신이 고안의 내에서 어떤 사용자 정의하려면 먼저, 플러그 - 인, 내가보기 엔 조언 당신은 \ Ruby_repertory \ lib 디렉토리 \ 루비 \ 보석 \ 1.9.1 \ 보석 \ 유증 버전 \ 응용 프로그램 \ 컨트롤러 "의 코드 과거 복사 | 도우미 | 프로젝트에서 원하는 파일에 우편물 ... ".

    [편집] 아니면 "정상"유증 파일 ... 같이가 ... 말 ... 당신은 유증 / registrations_controller.rb 내에서 하나 개의 기능, 사용자 정의의 첫 번째 줄을 덮어 쓸지에서 파일 상속을 할 수 있습니다 등록 컨트롤러는 다음과 같습니다

    class Users::RegistrationsController < Devise::RegistrationsController
    

    [편집 8 월 7 일 2013] 이제 고안도 컨트롤러를 생성하는 도구를 제공합니다 : https://github.com/plataformatec/devise/wiki/Tool:-Generate-and-customize-controllers

    그래서 ... 어쨌든 ... 나는 "AnApprentice는"단지이 (청소기 솔루션, 다음 큰 편집 참조) 작성 원하는 것을 얻을 수 있었다 :

    #/my_project/app/helpers/devise_helper.rb
    module DeviseHelper
       def devise_error_messages!
          return "" if resource.errors.empty?
    
          return resource.errors
       end
    end
    

    그리고, 내보기에, 다음 라인은 꽤 잘 작동 :

    <% devise_error_messages!.each do |key, value| %>
        <div class="flash <%= key %>"><%= key %> <%= value %></div>
    <% end %>
    

    음 ... 당신은 이런 특정 속성에 대해 오류에 액세스 할 수 있습니다 :

        #Imagine you want only the first error to show up for the login attribute:
        <%= devise_error_messages![:login].first %> 
    

    그리고 ... 약간의 트릭은 하나의 오류 특성에 따라 게재 (사로 잡았 얻을 수있는 첫 번째)가합니다 :

    <% if resource.errors.any? %>
      <% saved_key = "" %>
      <% devise_error_messages!.each do |key, value| %>
        <% if key != saved_key %>
            <div class="flash <%= key %>"><%= key %> <%= value %></div>
        <% end %>
        <% saved_key = key %>
      <% end %>
    <% end %>
    

    나는이 질문이 게시 된 이후 그 동안이었다 알고 있지만, 나는 많은 : 유증 사용자의 도움이 될 것으로 생각합니다.

    빅 편집 :

    내가, 내 코드를 확장 청소기를 만들고 다른 사람과 공유하는 사랑, 나는 최근에 devise_error_messages 변경을 원! 순서 방법은 내보기에 그것을 사용하고 내가 위에서 설명한 트릭을 표시 할 수 있습니다.

    그래서, 여기 내 방법은 :

     def devise_error_messages! 
        html = ""
    
        return html if resource.errors.empty?
    
        errors_number = 0 
    
        html << "<ul class=\"#{resource_name}_errors_list\">"
    
        saved_key = ""
        resource.errors.each do |key, value|
          if key != saved_key
            html << "<li class=\"#{key} error\"> This #{key} #{value} </li>"
            errors_number += 1
          end
          saved_key = key
        end
    
        unsolved_errors = pluralize(errors_number, "unsolved error")
        html = "<h2 class=\"#{resource_name}_errors_title\"> You have #{unsolved_errors} </h2>" + html
        html << "</ul>"
    
        return html.html_safe
     end
    

    아니 큰 문제가 여기에, 나는 종종 첫 번째는 유일하게 관련이 있기 때문에, 나는 속성 PEY 단 하나의 오류를 보여 내보기에 쓴 코드를 재사용 (같은 때 사용자 잊어 하나 개의 필수 필드).

    나는 그 "독특한"오류를 믿는다 나는 복수형을 사용하여 H2 HTML 제목을 만들고 오류 목록 전에 퍼팅하고있다.

    그래서 지금, 나는 "devise_error_messages을!"를 사용할 수 있습니다 기본 하나 그것은 이미 전에 렌더링 정확히 무엇을 렌더링합니다.

    또는 어떤 : 당신이보기에 특정 오류 메시지에 액세스하려면, 지금 바로 "[속성] 좁은 방 resource.errors"를 사용하는 것이 좋습니다.

    세야, BULGAR.

  5. ==============================

    5.나는 YoyoS에, 응용 프로그램 / 헬퍼 / devise_helper.rb를 만들고 여기에이를 배치하여 유사하게이 문제를 해결 :

    나는 YoyoS에, 응용 프로그램 / 헬퍼 / devise_helper.rb를 만들고 여기에이를 배치하여 유사하게이 문제를 해결 :

    module DeviseHelper
    
      # Hacky way to translate devise error messages into devise flash error messages
      def devise_error_messages!
        if resource.errors.full_messages.any?
            flash.now[:error] = resource.errors.full_messages.join(' & ')
        end
        return ''
      end
    end
    

    일했다!

  6. ==============================

    6.나는 레일 3 고안를 사용하고 있는데 플래시 코드는 거의 동일 내가 알아 낸 것입니다. 내 응용 프로그램에서 코드는 예상대로 작동합니다; 즉 유증 오류 메시지가 내 플래시 메시지의 나머지 부분과 출력 :

    나는 레일 3 고안를 사용하고 있는데 플래시 코드는 거의 동일 내가 알아 낸 것입니다. 내 응용 프로그램에서 코드는 예상대로 작동합니다; 즉 유증 오류 메시지가 내 플래시 메시지의 나머지 부분과 출력 :

    <% flash.each do |name, msg| %>
      <%= content_tag :div, msg, :id => "flash_#{name}" if msg.is_a?(String) %>
    <% end %>
    

    이 정확한 코드를 시도하고 어떤 차이가 있는지 - 서로 다른 ID 속성이 도움이 될 수 있습니다.

  7. ==============================

    7.나는이에 와서는 지금까지 일하고있다. 그것은 평소처럼 사용할 수 있도록 즉, 플래시에 유증 메시지를 추가합니다. 내가 루비와 레일스에 새로 온 것을 고려하시기 바랍니다 ...

    나는이에 와서는 지금까지 일하고있다. 그것은 평소처럼 사용할 수 있도록 즉, 플래시에 유증 메시지를 추가합니다. 내가 루비와 레일스에 새로 온 것을 고려하시기 바랍니다 ...

    class ApplicationController < ActionController::Base
      after_filter :set_devise_flash_messages, :if => :devise_controller?
      ...
    
      private:
    
      def set_devise_flash_messages
        if resource.errors.any?
          flash[:error] = flash[:error].to_a.concat resource.errors.full_messages
          flash[:error].uniq!
        end
      end
    end
    

    편집하다:

    미안 가드를 실행중인 일부 원치 않는 행동이 존재했다. after_filter이 렌더링 후에 호출되기 때문에 예상대로 작동하지 않도록. 누군가가 방법 조치 후하지만 렌더링하기 전에 호출하는 방법을 알고 있다면 ...

    그러나 대신 그런 일을 사용할 수 있습니다 :

    module ApplicationHelper
    
      # merge the devise messages with the normal flash messages
      def devise_flash
        if controller.devise_controller? && resource.errors.any?
          flash.now[:error] = flash[:error].to_a.concat resource.errors.full_messages
          flash.now[:error].uniq!
        end
      end
    
    end
    

    보기 / 공유 / _messages.html.erb에서

    <% devise_flash %>
    <!-- then display your flash messages as before -->
    
  8. ==============================

    8.(: 경고 : 통지 등) 주어진 유형의 하나 이상의 플래시를 표시 할 수 있도록하려면 보석 동작을 수정하려고 시간을 낭비하지,이게 내가 고안에 사용되는 솔루션입니다. 나는 그것이 사용 메시지를 플래시 것을 어떤 보석과 함께 사용할 수 있습니다 확신 해요.

    (: 경고 : 통지 등) 주어진 유형의 하나 이상의 플래시를 표시 할 수 있도록하려면 보석 동작을 수정하려고 시간을 낭비하지,이게 내가 고안에 사용되는 솔루션입니다. 나는 그것이 사용 메시지를 플래시 것을 어떤 보석과 함께 사용할 수 있습니다 확신 해요.

    우선은 할, 당신의 application_controller.rb,이 추가 :

      # Adds the posibility to have more than one flash of a given type
      def flash_message(type, text)
        flash[type] ||= []
        flash[type] << text
      end
    

    두 번째 문제는, 할 application.html.erb에두고 플래시 메시지를 표시 (또는 당신이 원하는 목적지)합니다 :

       <div class="flashes">
          <% flash.each do |key, messages| %>
            <% messages = Array(messages) unless messages.is_a?(Array) %>
            <% messages.each do |message| %>
            <div class="alert alert-<%= key %>">
              <%= message %>
            </div>
            <% end %>
          <% end %>
        </div>
    

    당신은 어떤 컨트롤러 플래시 메시지를 추가 할이 할 때마다 세 번째 것은,해야 할 일 :

    flash_message(:success, "The user XYZ has been created successfully.")
    
  9. ==============================

    9.DeviseHelper 만들기 :

    DeviseHelper 만들기 :

    module DeviseHelper
      def devise_error_messages!
        return "" if resource.errors.empty?
    
        messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg)}.join
        return flash.now[:alert] = messages.html_safe
      end
    end
    

    보기, 대신에

    <%= devise_error_messages! %>
    

    에:

    <% devise_error_messages! %>
    
  10. ==============================

    10.내가 그 설정하면 잡아 깜박이 도우미 (응용 프로그램 / 도우미 / devise_helper.rb)를 사용하고 사용하고 있습니다 만 인정 하듯이, 비트 해키 후 resource.errors 기본값. 이것은 단지 유증의 lib에의 도우미를 기반으로합니다.

    내가 그 설정하면 잡아 깜박이 도우미 (응용 프로그램 / 도우미 / devise_helper.rb)를 사용하고 사용하고 있습니다 만 인정 하듯이, 비트 해키 후 resource.errors 기본값. 이것은 단지 유증의 lib에의 도우미를 기반으로합니다.

    module DeviseHelper
    
      def devise_error_messages!
        flash_alerts = []
        error_key = 'errors.messages.not_saved'
    
        if !flash.empty?
          flash_alerts.push(flash[:error]) if flash[:error]
          flash_alerts.push(flash[:alert]) if flash[:alert]
          flash_alerts.push(flash[:notice]) if flash[:notice]
          error_key = 'devise.failure.invalid'
        end
    
        return "" if resource.errors.empty? && flash_alerts.empty?
        errors = resource.errors.empty? ? flash_alerts : resource.errors.full_messages
    
        messages = errors.map { |msg| content_tag(:li, msg) }.join
        sentence = I18n.t(error_key, :count    => 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
    
  11. ==============================

    11.당신은 당신이 할 수 있습니다 resource.errors에 추가하여 다음 devise_error_messages의 오프 피기 백을 찾고 있다면

    당신은 당신이 할 수 있습니다 resource.errors에 추가하여 다음 devise_error_messages의 오프 피기 백을 찾고 있다면

    당신이 이상 등록 컨트롤러를 타고 있다면, 그것은처럼 보일 수 있습니다

    def create
      if validation_or_other_check_passes
        super
      else
        build_resource
        clean_up_passwords(resource)
        resource.errors.add(:notice, "The check failed.")
        render :new 
    
  12. ==============================

    12.각 필드의 표시 오류 메시지 아주 쉬운 방법

    각 필드의 표시 오류 메시지 아주 쉬운 방법

    <%= resource.errors.messages[:email].join(" ") %>
    

    유 인라인 오류 메시지를 표시 할 모든 선 아래 각 괄호에 필드 이름과 각 필드에 넣어.

  13. ==============================

    13.나는 단순히 나를 위해 일한이 수행 : 응용 프로그램 / 헬퍼에 / 내가 파일 devise_helper.rb을 만들

    나는 단순히 나를 위해 일한이 수행 : 응용 프로그램 / 헬퍼에 / 내가 파일 devise_helper.rb을 만들

      module DeviseHelper
    
      def devise_error_messages_for(resource)
        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
    

    모든보기에서 나는 변화를 파일

    <%= devise_error_messages! %>
    

    에 대한:

    <%= devise_error_messages_for(#your object in your formular)%>
    

    나를 위해 내보기, 편집 및 새로운 사용자에합니다

      <%=form_for resource, as: @user, url: user_path(@user),...
          <%= devise_error_messages_for(@user) %>
    

    당신을 도움이되기를 바랍니다)

  14. ==============================

    14.게재에 첫 번째 오류 컨트롤러로부터 유증 오류를 표시합니다.

    게재에 첫 번째 오류 컨트롤러로부터 유증 오류를 표시합니다.

    flash[:error] = @resource.errors.full_messages.first
    
  15. ==============================

    15.그냥 문을 사용하는 경우 모든이 아니라 대신 같은 것을 할 경우 위의 에릭 후 답변에 추가 할 수 있습니다.

    그냥 문을 사용하는 경우 모든이 아니라 대신 같은 것을 할 경우 위의 에릭 후 답변에 추가 할 수 있습니다.

    # Controller
    flash.now[:error] = flash[:error].to_a.concat(resource.errors.full_messages)
    
    # View
    <% flash.each do |name, msg| %>
     <% Array(msg).uniq.each do |message| %>
      <%= message %>
     <% end %>
    <% end %>
    
  16. ==============================

    16.

    class Users::PasswordsController < Devise::PasswordsController
      after_filter :flash_errors
    
      def flash_errors
        unless resource.errors.empty?
          flash[:error] = resource.errors.full_messages.join(", ")
        end
      end
    end
    
  17. ==============================

    17.나는이 사기와 다른 고안 컨트롤러에서 이루어집니다처럼 그것을 할 것을 좋아합니다.

    나는이 사기와 다른 고안 컨트롤러에서 이루어집니다처럼 그것을 할 것을 좋아합니다.

    <% if flash.count > 0 %>
      <div id="error_explanation">
        <h2>Errors prevented you from logging in</h2>
          <ul>
            <% flash.each do |name, msg| %>
            <li>
              <%= content_tag :div, msg, id: "flash_#{name}" %>
            </li>
           <% end %>
         </ul>
       </div>
    <% end %>
    
  18. ==============================

    18.디스플레이 유증 오류 메시지에 materialisecss 위해 나는 애플 리케이션 / 헬퍼 / devise_helper.rb이 코드를 추가 토스트로

    디스플레이 유증 오류 메시지에 materialisecss 위해 나는 애플 리케이션 / 헬퍼 / devise_helper.rb이 코드를 추가 토스트로

    module DeviseHelper
      def devise_error_messages!
    
        messages = resource.errors.full_messages.map { |msg|
          String.new(" M.toast({html: '" + msg + "' }); ".html_safe )
        }.join
    
        messages = ("<script>" + messages + "</script>").html_safe
      end 
    end
    

    나는 확실히 그것을 작성하는 깨끗한 방법으로 자신의 것입니다 만 완벽하게 워킹 것

  19. ==============================

    19.난 그냥 존과 같은 응용 프로그램 / 헬퍼 / devise_helper.rb을 만들었지 만 그런 방법을 오버라이드 :

    난 그냥 존과 같은 응용 프로그램 / 헬퍼 / devise_helper.rb을 만들었지 만 그런 방법을 오버라이드 :

    module DeviseHelper
      def devise_error_messages!
        flash[:error] = resource.errors.full_messages.join('<br />')
        return ''
      end
    end
    

    이것으로 내가 무엇을 수정할 필요가 없습니다. 그것은 나쁜 생각인가? 나는 레일에 새로운 해요, 저를 해결하는 데 주저하지 않는다. 감사.

  20. ==============================

    20.난 그냥 devise_error_messages 선언! 빈 도우미로. 그리고 수동으로 가져와 내 응용 프로그램에 대한 부분 일반 _errors에서 오류를 처리. 가장 간단한 해결책처럼 보였다 나는 유증의 모든 파일을 이동하고 오류 처리기에 대한 호출을 제거 할 필요가 없습니다.

    난 그냥 devise_error_messages 선언! 빈 도우미로. 그리고 수동으로 가져와 내 응용 프로그램에 대한 부분 일반 _errors에서 오류를 처리. 가장 간단한 해결책처럼 보였다 나는 유증의 모든 파일을 이동하고 오류 처리기에 대한 호출을 제거 할 필요가 없습니다.

  21. from https://stackoverflow.com/questions/4101641/rails-devise-handling-devise-error-messages by cc-by-sa and MIT license