검증의 실현

5010 단어 발리

발리가 뭐예요?


레코드를 테이블에 저장할 때는 값이 정확한지 확인해야 합니다.간단하게 이 검증을 진행한 것은 Rails가 준비한 유효성(validates 방법)이다.

검증된 쓰기 방법과 구체적인 예


① Rails 응용 프로그램 폴더의 app/models/rb에서 원본 코드 설명
book.rb
  validates :title, presence: true
  validates :body, presence: true,length: {maximum: 200 }
[의미] 검증을 통해 공백 데이터를 입력하지 않으면save 방법을 통해 가짜를 되돌려줍니다.
【상세】
A:(title) 및 (body)에서 "presence: 진짜"를 지정하여 "공백 금지(값 입력 필수)"를 지정합니다.
A:length: {maximumm:10} 최대값도 설정할 수 있습니다.대신 미니멀:2(최소 2자 이상 입력해야 함)도 최소 수를 설정할 수 있습니다.
② 컨트롤러를 통한 설정
books_controller.rb
  def create
    @book = Book.new(book_params)
    if@book.save
      redirect_to book_path(@book)
    else
      render 'index'
    end
  end
[함의] 새로운 투고 등을 통해 데이터를 제작할 때create는 동작으로 시작합니다.컨트롤러는 입력 형식이 완비되지 않았을 때의 처리 방법을 기록한다.
【상세】
    [email protected]
      redirect_to book_path(@book)
● 저장할 수 있다면 기고문 저장후 북path( @user )탭이번에는 투고할 때 북/1로 옮기고 싶어서 이런 설정이다.
※ 경로는 수시로 확인하고 설정해야 합니다.
    else
      render 'index'
A:입력 형식에 문제가 있어 저장할 수 없는 것으로 판단되는 경우.컨트롤러의 처리를 되돌려주지 않고 index의 디스플레이 화면으로 이동합니다.다른 것은 new 등을 설정할 수 있습니다.
③ 뷰 페이지에 오류 표시
검증 기술을 했더라도 잘못된 내용은 표시되지 않는다.마지막 틀린 내용을 확인할 수 있다.
new.html.erb
    <% if @book.errors.any? %>
      <h3><%= @book.errors.count %>errors prohibited this obj from being saved:</h3>
      <% @book.errors.full_messages.each do |message| %>
      <ul><li>
        <%= message %>
        </li>
        </ul>
      <% end %>
    <% end %>
【상세】
<% if @book.errors.any? %>
⇒errors.any?오류가 발생한 내용과?의 조합으로 오류를 판정할 수 있다.
<%= @book.errors.count %>errors prohibited this obj from being saved:
⇒errors.count를 통해 잘못된 개수를 표시합니다.% >그리고 표시하고 싶은 텍스트를 기입하세요.<%[email protected]%> 개의 오류입니다.
<% @book.errors.full_messages.each do |message| %>
A:또한full메시지 조합을 통해 잘못된 내용을 출력할 수 있습니다.
오류문은 배열에 따라 저장되기 때문에 each를 사용합니다.

최종 그림


다음 오류 코드를 표시할 수 있습니다.

※ 문자의 색상 등은 CSS나 부츠트랩을 통해 설정합니다.

좋은 웹페이지 즐겨찾기