質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.40%

  • Ruby

    9873questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails 5

    3539questions

selectとselect_tag,form_forとform_tagの違い

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 239

sk2938

score 15

検索フォームをrailsで作っているのですが、都道府県を検索する機能を作れません。select_tagで都道府県を検索できるようにしたいのですが、どうすればいいのでしょうか?

<%= form_tag(users_path, method: "get") do %>
  <%= select_tag :prefecture, options_for_select( [
    ['北海道地方', [
        ['北海道',   '北海道'],
      ]
    ],
    ['東北地方', [
        ['青森県',    '青森県'],
        ['岩手県',   '岩手県'],
        ['宮城県',   '宮城県'],
        ['秋田県',   '秋田県'],
        ['山形県',   '山形県'],
        ['福島県',   '福島県'],
      ]
    ],
    ['関東地方', [
        ['茨城県',    '茨城県'],
        ['栃木県',   '栃木県'],
        ['群馬県',   '群馬県'],
        ['埼玉県',   '埼玉県'],
        ['千葉県',   '千葉県'],
        ['東京都',   '東京都'],
        ['神奈川県',   '神奈川県'],
      ]
    ],
    ['中部地方', [
        ['新潟県',    '新潟県'],
        ['富山県',   '富山県'],
        ['石川県',   '石川県'],
        ['福井県',   '福井県'],
        ['山梨県',   '山梨県'],
        ['長野県',   '長野県'],
        ['岐阜県',   '岐阜県'],
        ['静岡県',   '静岡県'],
        ['愛知県',   '愛知県'],
      ]
    ],
    ['近畿地方', [
        ['三重県',    '三重県'],
        ['滋賀県',   '滋賀県'],
        ['京都府',   '京都府'],
        ['大阪府',   '大阪府'],
        ['兵庫県',   '兵庫県'],
        ['奈良県',   '奈良県'],
        ['和歌山県',   '和歌山県'],
      ]
    ],
    ['中国地方', [
        ['鳥取県',    '鳥取県'],
        ['島根県',   '島根県'],
        ['岡山県',   '岡山県'],
        ['広島県',   '広島県'],
        ['山口県',   '山口県'],
      ]
    ],
    ['四国地方', [
        ['徳島県',    '徳島県'],
        ['香川県',   '香川県'],
        ['愛媛県',   '愛媛県'],
        ['高知県',   '高知県'],
      ]
    ],
    ['九州地方', [
        ['福岡県',    '福岡県'],
        ['佐賀県',   '佐賀県'],
        ['長崎県',   '長崎県'],
        ['熊本県',   '熊本県'],
        ['大分県',   '大分県'],
        ['宮崎県',   '宮崎県'],
        ['鹿児島県',   '鹿児島県'],
      ]
    ],
    ['沖縄地方', [
        ['沖縄県',    '沖縄県'],
      ]
    ],
  ] 
  ),  include_blank: true, class: "form-control" %>
  <%= submit_tag "検索" %>
<% end %>


上のコードだと北海道地方、東北地方などがでてきて、都道府県は出てきません。
下のコードで出てくるようなものにしたいのですが、どうすればいいでしょうか?

<%= form_for @user do |f| %>
  <%= f.select :prefecture,  [
        ['北海道地方', [
            ['北海道',   '北海道'],
          ]
        ],
        ['東北地方', [
            ['青森県',    '青森県'],
            ['岩手県',   '岩手県'],
            ['宮城県',   '宮城県'],
            ['秋田県',   '秋田県'],
            ['山形県',   '山形県'],
            ['福島県',   '福島県'],
          ]
        ],
        ['関東地方', [
            ['茨城県',    '茨城県'],
            ['栃木県',   '栃木県'],
            ['群馬県',   '群馬県'],
            ['埼玉県',   '埼玉県'],
            ['千葉県',   '千葉県'],
            ['東京都',   '東京都'],
            ['神奈川県',   '神奈川県'],
          ]
        ],
        ['中部地方', [
            ['新潟県',    '新潟県'],
            ['富山県',   '富山県'],
            ['石川県',   '石川県'],
            ['福井県',   '福井県'],
            ['山梨県',   '山梨県'],
            ['長野県',   '長野県'],
            ['岐阜県',   '岐阜県'],
            ['静岡県',   '静岡県'],
            ['愛知県',   '愛知県'],
          ]
        ],
        ['近畿地方', [
            ['三重県',    '三重県'],
            ['滋賀県',   '滋賀県'],
            ['京都府',   '京都府'],
            ['大阪府',   '大阪府'],
            ['兵庫県',   '兵庫県'],
            ['奈良県',   '奈良県'],
            ['和歌山県',   '和歌山県'],
          ]
        ],
        ['中国地方', [
            ['鳥取県',    '鳥取県'],
            ['島根県',   '島根県'],
            ['岡山県',   '岡山県'],
            ['広島県',   '広島県'],
            ['山口県',   '山口県'],
          ]
        ],
        ['四国地方', [
            ['徳島県',    '徳島県'],
            ['香川県',   '香川県'],
            ['愛媛県',   '愛媛県'],
            ['高知県',   '高知県'],
          ]
        ],
        ['九州地方', [
            ['福岡県',    '福岡県'],
            ['佐賀県',   '佐賀県'],
            ['長崎県',   '長崎県'],
            ['熊本県',   '熊本県'],
            ['大分県',   '大分県'],
            ['宮崎県',   '宮崎県'],
            ['鹿児島県',   '鹿児島県'],
          ]
        ],
        ['沖縄地方', [
            ['沖縄県',    '沖縄県'],
          ]
        ],
      ], 
      { prompt: '選択してください' }, class: 'form-control' %>
  <%= f.submit '登録' %>
<% end %>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.40%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Ruby

    9873questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails 5

    3539questions