boolean형 투고와 디스플레이 (ruby2.5.4)

3672 단어 Rails
이번에 데이터베이스에 boolean형으로 저장된 값입니다.
다음은 투고하고 표시할 때 다른 표시 이름을 사용하는 방법을 소개합니다.
잘못된 부분과 이해하기 어려운 부분이 있다면 지적해 주십시오.
이번에는 제가 직접 만든 간이 SNS 사이트의 예를 바탕으로 소개해 드리겠습니다.
환경
ruby 5.2.4
이번 대상은 프로젝트 테이블의 채워진 열이다.
 create_table "items", force: :cascade do |t|
    t.string "name", null: false
    t.string "shop_name", null: false
    t.boolean "packing", default: true, null: false
↓ 프로젝트 컨트롤러
items_contoroller.rb
def show
    @item = Item.find_by(id: params[:id])
end
def new
    @new_item = Item.new
end

 private
  def item_params
    params.require(:item).permit(:name,:shop_name,:packing,:introduction)
  end
부울 유형은 실제 또는 거짓 두 가지 선택만으로 열에 저장된 값을 처리할 수 있는 데이터 유형입니다.
남녀
따라서 중치를 운용하는 종류가 증가할 가능성이 있는 상황에서 데이터 형식을integer형으로 설정한다
Enam으로 관리하는 게 좋을 것 같아요.
채소 과육 생선
그러면 이 문제의 boolean형은 데이터베이스에 저장된 값이 진짜인지 가짜인지를 나타낸다.
하지만 실제 화면에 진위인지 아닌지는 알 수 없다.
따라서 다음 그림에서 보듯이true를 단일 포장false로 바꾸고 싶습니다.

어떻게 해요?
form_with의radio_버튼 옵션 사용!
실제 게시물 설명 코드
items/new.erb
<h4>新規投稿画面</h4>
<%= form_with model: @new_item, local:true do |f| %>
~
<h6>包装</h6>
<%= f.radio_button :packing, "true" %>個包装
<%= f.radio_button :packing, "false" %>同梱
~
<%= f.submit '投稿する' %>
<% end %>
(~와 무관한 기술이라는 뜻)
f.radio_button: 열 이름, "진짜"% >true 문자
f.radio_button: 열 이름, "false"% >false에 적용할 문자
기술하면 임의의 문자가 된다는 뜻!
그러면 투고한 물건을 표시할 때 어떻게 합니까?

if 문장 사용!
왜 If 문구를 사용합니까?그것은 내가 If 문장이 사실인지 아닌지를 묻기 때문이다.
따라서 조건 분기를 사용하십시오. 만약 사실이라면 포장을 표시하고, 그렇지 않으면 (elseif) 묶음으로 표시합니다.
items/show.erb
<h6>
  <i class="fas fa-box"></i>包装
  <strong>
    <% if @item.packing %>
        個包装
    <% elsif %>
        同梱
    <% end %>
 </strong>
</h6>
경품
부울 검증
item.rb
validates :packing, inclusion: {in: [true, false]}

포함 진실 또는 거짓을 검증 조건으로 삼다
여기서 마치겠습니다.
읽어주셔서 감사합니다.

좋은 웹페이지 즐겨찾기