ユーザーが選択した国に応じて、都道府県の自動制約付き選択を実装したいと思います。
ユーザーが国フィールドで米国を選択した場合、都道府県選択フィールドには、カリフォルニアやニューヨークなどのアメリカの州のみが表示されます。
カントリーモデルは
- ID
- 名前
都道府県モデルあり
- ID
- country_id
- 県
今、私はこれらのフィールドをこのように表示しています
<% resource.build_user_profile if resource.user_profile.nil? %>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put, :class => 'form-horizontal' }) do |f| %>
<%= devise_error_messages! %>
<%= f.fields_for :user_profile do |profile_form| %>
<label class="control-label"><%= profile_form.label :country_id %></label>
<%= profile_form_select :country, options_for_select(Countryy.all.map{ |g| [g.name, g.id] }) %>
<label class="control-label"><%= profile_form.label :prefecture_id %></label>
<%= profile_form_select :prefecture, options_for_select(Prefecture.all.map{ |g| [g.name, g.id] }) %>
<% end %>