【Rails】 에러 메시지 표시
목표
구현
오류 메시지 파일 작성
app/views/layouts/_error_messeages.html.erb<% if model.errors.any? %>
<div id="error_explanation" class="alert alert-warning">
<ul class="mb-0">
<% model.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
밸리데이션
신규 등록시의 제한을 기술.
여기에 기술 된 한계에 걸린 경우 오류 메시지로 표시됩니다.
app/models/user.rbclass User < ApplicationRecord
before_save { email.downcase! }
validates :name, presence: true, length: { maximum: 50 }
validates :email, presence: true, length: { maximum: 255 },
format: { with: /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i },
uniqueness: { case_sensitive: false }
has_secure_password
신규 등록 양식에 부분 render
에 에러 메세지 파일을 기술한다.<%= render 'layouts/error_messages', model: f.object %>
app/views/users/new.html.erb
<h1>Sign up</h1>
<%= form_with(model: @user) do |f| %>
<%= render 'layouts/error_messages', model: f.object %>
<div>
<%= f.label :name, 'Name' %>
<%= f.text_field :name, class: 'form-control' %>
</div>
<div>
<%= f.label :email, 'Email' %>
<%= f.email_field :email, class: 'form-control' %>
</div>
<div>
<%= f.label :password, 'Password' %>
<%= f.password_field :password, class: 'form-control' %>
</div>
<div>
<%= f.label :password_confirmation, 'Confirmation' %>
<%= f.password_field :password_confirmation, class: 'form-control' %>
</div>
<%= f.submit 'Sign up', class: 'btn btn-primary' %>
<% end %>
이제 오류 메시지가 표시됩니다.다른 양식도 비슷한 방식으로 괜찮습니다.
Reference
이 문제에 관하여(【Rails】 에러 메시지 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/moru0606/items/1e69cebe818dcc117133
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<% if model.errors.any? %>
<div id="error_explanation" class="alert alert-warning">
<ul class="mb-0">
<% model.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
class User < ApplicationRecord
before_save { email.downcase! }
validates :name, presence: true, length: { maximum: 50 }
validates :email, presence: true, length: { maximum: 255 },
format: { with: /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i },
uniqueness: { case_sensitive: false }
has_secure_password
<h1>Sign up</h1>
<%= form_with(model: @user) do |f| %>
<%= render 'layouts/error_messages', model: f.object %>
<div>
<%= f.label :name, 'Name' %>
<%= f.text_field :name, class: 'form-control' %>
</div>
<div>
<%= f.label :email, 'Email' %>
<%= f.email_field :email, class: 'form-control' %>
</div>
<div>
<%= f.label :password, 'Password' %>
<%= f.password_field :password, class: 'form-control' %>
</div>
<div>
<%= f.label :password_confirmation, 'Confirmation' %>
<%= f.password_field :password_confirmation, class: 'form-control' %>
</div>
<%= f.submit 'Sign up', class: 'btn btn-primary' %>
<% end %>
Reference
이 문제에 관하여(【Rails】 에러 메시지 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/moru0606/items/1e69cebe818dcc117133텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)