【Rails】 form_with, form_for에서 아래로 내려가기 (선택 상자)

5518 단어 초학자RubyRails

개요


이번에 rails 프로그램에서 폼을 보낼 때 다음과 같은 간단한 드롭다운 조작을 실현할 수 있다.(질문이 있으면 마음대로 댓글을 달아주세요!)
이 글은 form_with을 예로 들면 form_for에서도 같은 코드를 사용할 수 있다.


예제


상술한 예는 아래 코드 한 줄로 실현할 수 있다."faculty"란에서 옵션 내의 학부 중 하나를 선택하여 저장합니다. 또한 "hoge"는 "Honyara"를 의미하므로 자신의 제품에 따라 변경해 주십시오.)
view/hoges/new.html.erb
  <%= form_with model: @hoge do |f| %>

     # 以下の一行がプルダウンを実装するためのコード(追記部分)
     <%= f.select :faculty, [["理工学部", "理工学部"], ["経済学部", "経済学部"], ["法学部", "法学部"], ["医学部", "医学部"]], include_blank: "選択して下さい" %>

     <%= f.submit '送信'%>
  <% end %>

보통


코드를 일반 형태로 수정한 후 다음과 같다.
view/hoges/new.html.erb
  <%= form_with model: @hoge do |f| %>

     # 以下の一行がプルダウンを実装するためのコード(追記部分)
     <%= f.select :保存先のカラム名, [["選択肢1", "実際にDBに保存させる内容"], ["選択肢2", "実際にDBに保存させる内容"]], include_blank: "選択して下さい" %>

     <%= f.submit '送信'%>
  <% end %>
대상 열 이름 저장에는 드롭다운 메뉴에서 선택한 값을 보낼 때 저장할 열의 이름이 설명되어 있습니다.
전송 버튼을 누른 후에도 수치를 저장할 수 없으면 컨트롤러 Strong Parameters의 설명을 확인하십시오.params.require(:hoge).permit(:hoge, :hogehoge)'선택 항목' 과 '실제 DB에 저장된 내용' 은 기본적으로 함께 할 수 있다.
('실제 DB에 저장된 내용'을 바꾸면'경제학부'를 선택하여 보낼 때 저장한 내용, 예를 들어 진짜, 2 등 정수라고 할 수 있다.)

응용편


드롭다운 옵션을 DB 내의 테이블에서 특정 열의 컨텐트로 설정할 수도 있습니다.
view/hoges/new.html.erb
  <%= form_with model: @hoge do |f| %>

     # 以下の一行がプルダウンを実装するためのコード(追記部分)
     <%= f.collection_select :保存先のカラム名, テーブル(モデル)名.all, :実際にDBに保存させるカラム名, :選択肢に用いるカラム名, include_blank: "選択して下さい" %>

     <%= f.submit '送信'%>
  <% end %>

참고 문장


[개발 노트] Rubi on Rails의 form 입니다.for에서 아래 목록의 선택 상자를 설정하는 방법
[Rails4.x] Form의 Select 드롭다운 메뉴 항목을 DB에서 끌어내는 방법

좋은 웹페이지 즐겨찾기