어떻게 표에 검증 오류 메시지를 간단하게 표시합니까

1793 단어 RailsRubyTipstech

개시하다



rails tutoral 등 사이트에서는 검증을 통해 검증된 오류 정보가 위와 같이 총괄적으로 표시되지만 표마다 쉽게 볼 수 있기 때문에 응용 프로그램 helper로 실현하고자 합니다.
또 잘못된 정보와 열명은 일본어화할 수 있는 상태였지만 방법에 대한 다양한 보도가 있었기 때문에 이번에는 언급하지 않았다.(기재 참조)

helper 메서드


# application_helper
module ApplicationHelper
  def errors_hash(resource)
    resource.errors.messages.map do |col, errors_array|
      [col, errors_array.map { |error| resource.class.human_attribute_name(col) + error }]
    end.to_h
  end
end
먼저 리소스에 검증 검사를 실시한 모델 실례를 추가했다
resource.errors.messages
=>{:name=>["を入力してください"]}
같은 데이터가 변경될 수 있으므로 일본어화하여{:name=>["名前を入力してください"]}이런 느낌의 데이터를 돌려드릴게요.

창에 추가


post에서 검증하는 표에 추가합니다.
# 途中は省略
     <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
    .
    .
    .
    <%= f.label :username %>
    <%= f.text_field :username, autofocus: true %>

    # エラーメッセージの表示
    <% errors_hash(resource)[:username].each do |error_msg| %>
    <p class="text-xs text-red-500"><%= error_msg %></p>
    <% end %>
    .
    .
    .
    <%= f.submit "新規登録する" %>
    <% end %>

완성


보안 디스플레이

끝맺다


보기 쉬워진 반면에 형식마다 번거로움이 추가되어야 한다.
또 다른 방법이 있다면 댓글을 달아주세요!

참고 자료


rails 국제화 API

좋은 웹페이지 즐겨찾기