틀린 말이지 만,이 도우미 (app/helpers/devise_helper.rb)를 사용하여 깜박임을 잡아두고 기본값을 resource.errors
으로 설정하면 사용합니다. Devise의 세션 컨트롤러는 모델 오류를 사용하지 않는 대신 플래시 알림을 사용합니다. 이것은 개발자 라이브러리에있는 도우미를 기반으로합니다.
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
@drewbob. 어제이 문제가 생겼어! – thefugal