Scaffold에 확인 화면 추가
개요
scaffold에서 생성한 폼에 화면을 추가로 확인합니다.
새로 제작(new)한 확인 화면 제작이 보이지만 편집(edit)한 내용이 없어 고민이 돼서 하게 됐다.
컨트롤러의create 방법과 업데이트 방법에서 확인 화면의 표시와 저장을 DB에 구분합니다.
차리다
먼저 스캐프볼드를 만들겠습니다.rails generate scaffold book title:string author:string
인증 추가
창의 유효성을 추가합니다.확인 화면으로 이동하기 전에 입력 값에 문제가 있는지 확인하세요.
book.rbclass Book < ApplicationRecord
validates :title, :author, presence: true
end
컨트롤러
새로 만들 때의create 방법과 편집할 때의 업데이트 방법을 각각 변경합니다.
새로 만들다
인증에 문제가 없습니다. confirm 단추를 눌렀을 때 확인 화면을 엽니다.
백 버튼을 누르면 새 화면으로 돌아갑니다.
books_controller.rb # POST /books
# POST /books.json
def create
@book = Book.new(book_params)
respond_to do |format|
if @book.valid? && params[:confirm]
format.html { render :new_confirm }
elsif params[:back]
format.html { render :new }
elsif @book.save
format.html { redirect_to @book, notice: 'Book was successfully created.' }
format.json { render :show, status: :created, location: @book }
else
format.html { render :new }
format.json { render json: @book.errors, status: :unprocessable_entity }
end
end
end
편집자
기본적으로 새로 만든 것과 같다.
자동으로 생성된 @book입니다.업데이트, assign 사용 안 함attributes를 사용하지 않고 DB에 저장하면 확인 화면이 표시됩니다.
books_controller.rb # PATCH/PUT /books/1
# PATCH/PUT /books/1.json
def update
@book.assign_attributes(book_params)
respond_to do |format|
if @book.valid? && params[:confirm]
format.html { render :edit_confirm }
elsif params[:back]
format.html { render :edit }
elsif @book.save
format.html { redirect_to @book, notice: 'Book was successfully updated.' }
format.json { render :show, status: :ok, location: @book }
else
format.html { render :edit }
format.json { render json: @book.errors, status: :unprocessable_entity }
end
end
end
뷰
scaffold가 생성한 제작 화면을 변경하고 확인 화면을 추가합니다.
화면 만들기
일반commiit 단추에서 confirm 단추로 변경합니다.
_form.html.erb <div class="actions">
<%= form.submit 'Confirm', name: 'confirm' %>
</div>
화면 확인
우선 창을 호출하는 데 사용할 보기를 만듭니다.
new_confirm.html.erb<h1>New Book Confirmation</h1>
<%= render 'confirm', book: @book %>
edit_confirm.html.erb<h1>Editing Book Confirmation</h1>
<%= render 'confirm', book: @book %>
실제confirm의 관점은 여기에 있습니다.form.hidden_필드를 사용하여commiit 단추를 눌렀을 때 값을 받아들일 수 있도록 합니다.
그리고 이전 화면으로 돌아가기 위해 백 단추를 추가했습니다.
_confirm.html.erb<%= form_with(model: book, local: true) do |form| %>
<div class="field">
<%= form.label :title %>
<%= book.title %>
<%= form.hidden_field :title %>
</div>
<div class="field">
<%= form.label :author %>
<%= book.author %>
<%= form.hidden_field :author %>
</div>
<div class="actions">
<%= form.submit 'Back', name: 'back' %>
<%= form.submit %>
</div>
<% end %>
결실
화면을 만들고 화면을 확인하는 게 그렇습니다.
화면 만들기
화면 확인
감상
Rails가 어렵네요.개선할 점이 있으면 제게 건의해 주세요.
소스 코드
소스가 여기까지 올라왔어.
https://github.com/myzkyuki/scaffold_confirm_example
Reference
이 문제에 관하여(Scaffold에 확인 화면 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kasagon/items/be25681d3acb1a2a6744
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
먼저 스캐프볼드를 만들겠습니다.
rails generate scaffold book title:string author:string
인증 추가
창의 유효성을 추가합니다.확인 화면으로 이동하기 전에 입력 값에 문제가 있는지 확인하세요.
book.rbclass Book < ApplicationRecord
validates :title, :author, presence: true
end
컨트롤러
새로 만들 때의create 방법과 편집할 때의 업데이트 방법을 각각 변경합니다.
새로 만들다
인증에 문제가 없습니다. confirm 단추를 눌렀을 때 확인 화면을 엽니다.
백 버튼을 누르면 새 화면으로 돌아갑니다.
books_controller.rb # POST /books
# POST /books.json
def create
@book = Book.new(book_params)
respond_to do |format|
if @book.valid? && params[:confirm]
format.html { render :new_confirm }
elsif params[:back]
format.html { render :new }
elsif @book.save
format.html { redirect_to @book, notice: 'Book was successfully created.' }
format.json { render :show, status: :created, location: @book }
else
format.html { render :new }
format.json { render json: @book.errors, status: :unprocessable_entity }
end
end
end
편집자
기본적으로 새로 만든 것과 같다.
자동으로 생성된 @book입니다.업데이트, assign 사용 안 함attributes를 사용하지 않고 DB에 저장하면 확인 화면이 표시됩니다.
books_controller.rb # PATCH/PUT /books/1
# PATCH/PUT /books/1.json
def update
@book.assign_attributes(book_params)
respond_to do |format|
if @book.valid? && params[:confirm]
format.html { render :edit_confirm }
elsif params[:back]
format.html { render :edit }
elsif @book.save
format.html { redirect_to @book, notice: 'Book was successfully updated.' }
format.json { render :show, status: :ok, location: @book }
else
format.html { render :edit }
format.json { render json: @book.errors, status: :unprocessable_entity }
end
end
end
뷰
scaffold가 생성한 제작 화면을 변경하고 확인 화면을 추가합니다.
화면 만들기
일반commiit 단추에서 confirm 단추로 변경합니다.
_form.html.erb <div class="actions">
<%= form.submit 'Confirm', name: 'confirm' %>
</div>
화면 확인
우선 창을 호출하는 데 사용할 보기를 만듭니다.
new_confirm.html.erb<h1>New Book Confirmation</h1>
<%= render 'confirm', book: @book %>
edit_confirm.html.erb<h1>Editing Book Confirmation</h1>
<%= render 'confirm', book: @book %>
실제confirm의 관점은 여기에 있습니다.form.hidden_필드를 사용하여commiit 단추를 눌렀을 때 값을 받아들일 수 있도록 합니다.
그리고 이전 화면으로 돌아가기 위해 백 단추를 추가했습니다.
_confirm.html.erb<%= form_with(model: book, local: true) do |form| %>
<div class="field">
<%= form.label :title %>
<%= book.title %>
<%= form.hidden_field :title %>
</div>
<div class="field">
<%= form.label :author %>
<%= book.author %>
<%= form.hidden_field :author %>
</div>
<div class="actions">
<%= form.submit 'Back', name: 'back' %>
<%= form.submit %>
</div>
<% end %>
결실
화면을 만들고 화면을 확인하는 게 그렇습니다.
화면 만들기
화면 확인
감상
Rails가 어렵네요.개선할 점이 있으면 제게 건의해 주세요.
소스 코드
소스가 여기까지 올라왔어.
https://github.com/myzkyuki/scaffold_confirm_example
Reference
이 문제에 관하여(Scaffold에 확인 화면 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kasagon/items/be25681d3acb1a2a6744
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class Book < ApplicationRecord
validates :title, :author, presence: true
end
새로 만들 때의create 방법과 편집할 때의 업데이트 방법을 각각 변경합니다.
새로 만들다
인증에 문제가 없습니다. confirm 단추를 눌렀을 때 확인 화면을 엽니다.
백 버튼을 누르면 새 화면으로 돌아갑니다.
books_controller.rb
# POST /books
# POST /books.json
def create
@book = Book.new(book_params)
respond_to do |format|
if @book.valid? && params[:confirm]
format.html { render :new_confirm }
elsif params[:back]
format.html { render :new }
elsif @book.save
format.html { redirect_to @book, notice: 'Book was successfully created.' }
format.json { render :show, status: :created, location: @book }
else
format.html { render :new }
format.json { render json: @book.errors, status: :unprocessable_entity }
end
end
end
편집자
기본적으로 새로 만든 것과 같다.
자동으로 생성된 @book입니다.업데이트, assign 사용 안 함attributes를 사용하지 않고 DB에 저장하면 확인 화면이 표시됩니다.
books_controller.rb
# PATCH/PUT /books/1
# PATCH/PUT /books/1.json
def update
@book.assign_attributes(book_params)
respond_to do |format|
if @book.valid? && params[:confirm]
format.html { render :edit_confirm }
elsif params[:back]
format.html { render :edit }
elsif @book.save
format.html { redirect_to @book, notice: 'Book was successfully updated.' }
format.json { render :show, status: :ok, location: @book }
else
format.html { render :edit }
format.json { render json: @book.errors, status: :unprocessable_entity }
end
end
end
뷰
scaffold가 생성한 제작 화면을 변경하고 확인 화면을 추가합니다.
화면 만들기
일반commiit 단추에서 confirm 단추로 변경합니다.
_form.html.erb <div class="actions">
<%= form.submit 'Confirm', name: 'confirm' %>
</div>
화면 확인
우선 창을 호출하는 데 사용할 보기를 만듭니다.
new_confirm.html.erb<h1>New Book Confirmation</h1>
<%= render 'confirm', book: @book %>
edit_confirm.html.erb<h1>Editing Book Confirmation</h1>
<%= render 'confirm', book: @book %>
실제confirm의 관점은 여기에 있습니다.form.hidden_필드를 사용하여commiit 단추를 눌렀을 때 값을 받아들일 수 있도록 합니다.
그리고 이전 화면으로 돌아가기 위해 백 단추를 추가했습니다.
_confirm.html.erb<%= form_with(model: book, local: true) do |form| %>
<div class="field">
<%= form.label :title %>
<%= book.title %>
<%= form.hidden_field :title %>
</div>
<div class="field">
<%= form.label :author %>
<%= book.author %>
<%= form.hidden_field :author %>
</div>
<div class="actions">
<%= form.submit 'Back', name: 'back' %>
<%= form.submit %>
</div>
<% end %>
결실
화면을 만들고 화면을 확인하는 게 그렇습니다.
화면 만들기
화면 확인
감상
Rails가 어렵네요.개선할 점이 있으면 제게 건의해 주세요.
소스 코드
소스가 여기까지 올라왔어.
https://github.com/myzkyuki/scaffold_confirm_example
Reference
이 문제에 관하여(Scaffold에 확인 화면 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kasagon/items/be25681d3acb1a2a6744
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<div class="actions">
<%= form.submit 'Confirm', name: 'confirm' %>
</div>
<h1>New Book Confirmation</h1>
<%= render 'confirm', book: @book %>
<h1>Editing Book Confirmation</h1>
<%= render 'confirm', book: @book %>
<%= form_with(model: book, local: true) do |form| %>
<div class="field">
<%= form.label :title %>
<%= book.title %>
<%= form.hidden_field :title %>
</div>
<div class="field">
<%= form.label :author %>
<%= book.author %>
<%= form.hidden_field :author %>
</div>
<div class="actions">
<%= form.submit 'Back', name: 'back' %>
<%= form.submit %>
</div>
<% end %>
화면을 만들고 화면을 확인하는 게 그렇습니다.
화면 만들기
화면 확인
감상
Rails가 어렵네요.개선할 점이 있으면 제게 건의해 주세요.
소스 코드
소스가 여기까지 올라왔어.
https://github.com/myzkyuki/scaffold_confirm_example
Reference
이 문제에 관하여(Scaffold에 확인 화면 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kasagon/items/be25681d3acb1a2a6744
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
소스가 여기까지 올라왔어.
https://github.com/myzkyuki/scaffold_confirm_example
Reference
이 문제에 관하여(Scaffold에 확인 화면 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kasagon/items/be25681d3acb1a2a6744텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)