Rails 드롭다운 select 조합 동작

개시하다


입력 형식과 검색 형식이 있는 화면을 만들 때 빠질 수 없는 하단식
아주 편리하고 사용이 편리하지만 요소가 많으면 한꺼번에 어렵지 않을까요?
이번에는 select의 옵션을 그룹으로 나누어 밑에 있는 메뉴에 색인을 추가하는 방법의 사용 방법을 설명합니다.

어떻게 된 거야?


말로 설명하기 힘들지...
먼저 보세요.
이것 괜찮아요?

이렇게

이루어지다


테이블 정의


이번 예는 teamsmembers 두 개의 탁자를 사용했다.
teams
id
name
1
선발대
2
거북이 팀
...
...
members
id
team_id
name
1
1
서주미보
2
1
무부 사직
...
...
...
팀버는 1대 다야.

모델


위 두 테이블의 모형을 준비하다.
team.rb
class Team < ApplicationRecord
  has_many :members
end
member.rb
class Member < ApplicationRecord
end
팀에서 관계를 설정했습니다.
팀 대 멤버가 1대 많기 때문이다has_many.


그럼, 여기는 본환입니다.
사용 방법은grouped_collection_select이다.
http://railsdoc.com/references/grouped_collection_select
<%= form_for @user, url: {action: 'update'} do |f| %>

  <%= f.grouped_collection_select(:member_id, Team.all, :members, :name, :id, :name) %>

<% end %>

결실


쉽게 이루어질 수 있겠네요.대단해.
<form action="/user/update" method="post">
  <select name="test[member_id]">
    <optgroup label="あんこうチーム">
      <option value="1">西住 みほ</option>
      <option value="2">武部 沙織</option>
      <option value="3">五十鈴 華</option>
      <option value="4">秋山 優花里</option>
      <option value="5">冷泉 麻子</option>
    </optgroup>
    <optgroup label="カメさんチーム">
      <option value="6">角谷 杏</option>
      <option value="7">小山 柚子</option>
      <option value="8">河嶋 桃</option>
    </optgroup>
    <optgroup label="アヒルさんチーム">
      <option value="9">磯辺 典子</option>
      <option value="10">近藤 妙子</option>
      <option value="11">河西 忍</option>
      <option value="12">佐々木 あけび</option>
    </optgroup>
    <optgroup label="カバさんチーム">
      <option value="13">カエサル</option>
      <option value="14">エルヴィン</option>
      <option value="15">左衛門佐</option>
      <option value="16">おりょう</option>
    </optgroup>
    <optgroup label="ウサギさんチーム">
      <option value="17">澤 梓</option>
      <option value="18">山郷 あゆみ</option>
      <option value="19">丸山 紗希</option>
      <option value="20">阪口 桂利奈</option>
      <option value="21">宇津木 優季</option>
      <option value="22">大野 あや</option>
    </optgroup>
    <optgroup label="カモさんチーム">
      <option value="23">そど子</option>
      <option value="24">ゴモヨ</option>
      <option value="25">パゾ美</option>
    </optgroup>
    <optgroup label="レオポンさんチーム">
      <option value="26">ナカジマ</option>
      <option value="27">スズキ</option>
      <option value="28">ホシノ</option>
      <option value="29">ツチヤ</option>
    </optgroup>
    <optgroup label="アリクイさんチーム">
      <option value="30">ねこにゃー</option>
      <option value="31">ももがー</option>
      <option value="32">ぴよたん</option>
    </optgroup>
  </select>
</form>

매개 변수의 보충


이것은 참조에서 매개변수를 지정하는 방법입니다.f.grouped_collection_select(プロパティ名, オブジェクトの配列, タグを取得するメソッド, タグのラベル, valueの項目, テキストの項目 [, オプション])이해가 가요?당신은 Rails에 정통한 사람입니다!
초보자에게는 파라미터의 뜻을 이해하기 어려우니 설명해 주세요.

속성 이름


드롭다운 메뉴에서 선택한 값을 저장할 열의 이름입니다.
이번 예에서 저장할 때 users.member_id 하단 선택의 값이 추가됩니다.

객체 정렬


색인으로 표시할 요소의 배열입니다.
이번 예는 팀명을 색인으로 표시하려는 것이다Team.all.

태그를 가져오는 방법


나는 이곳이 가장 이해하기 어렵다고 생각한다.꼬리표 같은 거.
한 마디로 하면, 색인 아래에 표시된 일반 option 을 가져오는 방법을 지정합니다.
주의해야 할 것은 이 방법은 대상을 대상으로 배열하는 방법이다.
이번 예는 Team.all를 겨냥한 방법이다.
만약 Team.all에서 관련member의 일람을 얻으면
teams = Team.all
members = teams.members
그쵸?
따라서 이 매개 변수는 members를 설정했다.

라벨


이것은 '대상 배열' 에서 교부된 대상의 열을 인덱스하는 매개 변수입니다.
이번 예에서는 teams.name를 보여주고 싶어서 설정name했다.

value 항목


이것은 '태그 획득 방법' 으로 얻은 대상의 어느 열이 optionvalue 인자입니다.
이번 예에서 members.idvalue로 설정하고 싶어서 설정id했다.

텍스트 항목


이것은 "태그 획득 방법"으로 얻은 대상의 어느 열이 option 인 디스플레이 이름의 매개 변수입니다.
이번 예에서 members.namevalue로 설정하고 싶어서 설정name했다.

끝말


의외로 사용하기 편하다.
한번 써보시는 건 어떨까요?(이미 쓰고 있나..)
즉 경기팀만'비사'가 없다는 것이다.
확실히 앙코르 팀은 들어본 적이 없군.
블로그에서 보고 싶은 사람이 여기 있다->Rails 드롭다운 select 조합 동작

좋은 웹페이지 즐겨찾기