2012-12-24 55 views
1

我想根據用戶選擇的國家實施州的自動選擇。
我的意思是,它顯示了加利福尼亞,紐約,和等在縣內選擇,如果用戶選擇美國如何只顯示屬於選定國家的縣?

國家模型

  • 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.collection_select("country_id", Country.find(:all), :id, :name_en) %> 

<label class="control-label"><%= profile_form.label :prefecture_id %></label> 
<%= profile_form.collection_select("prefecture_id", Prefecture.find(:all), :id, :name) %> 

<% end %> 

回答

0

嘗試這些字段來更改表格這樣

<%= f.label :country_id %><br /> 
<%= f.collection_select :country_id, Country.all, :id, :name_en, include_blank: true %> 

<%= f.label :state_id, "State or Province" %><br /> 
<%= f.grouped_collection_select :prefecture_id, Country.all, :prefectures, :name_en, :id, :name, include_blank: true %> 

並粘貼到適當的咖啡文件(如果型號是profileprofile.js.coffee)如果是在其他模型的變化曲線在文件名和文件裏面

jQuery -> 
    $('#resource_name_user_profile_prefecture_id').parent().hide() 
    prefectures = $('#resource_name_user_profile_prefecture_id').html() 
    $('#resource_name_user_profile_country_id').change -> 
    country = $('#resource_name_user_profile_country_id :selected').text() 
    escaped_country = country.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1') 
    options = $(prefectures).filter("optgroup[label='#{escaped_country}']").html() 
    if options 
     $('#resource_name_user_profile_prefecture_id').html(options) 
     $('#resource_name_user_profile_prefecture_id').parent().show() 
    else 
     $('#resource_name_user_profile_prefecture_id').empty() 
     $('#resource_name_user_profile_prefecture_id').parent().hide() 
+0

感謝您的幫助:)我想你的代碼,但是這給回錯誤:(我注意到,我幾乎忘了把'我的國家'選擇字段中的'_en'。你能告訴我什麼時候它是'name_en'而不是'name'在國家領域? – MKK

+0

請用表格開頭('form_for'行)更新您的問題比我更新我的答案 –

+0

非常感謝。但我注意到你在這裏做的方式顯示了國家和地區在相同的選擇領域的組合。你可以讓國家和縣分開嗎? – MKK

相關問題