Ruby on rails 如何仅显示属于选定国家/地区的地区?

Ruby on rails 如何仅显示属于选定国家/地区的地区?,ruby-on-rails,ruby-on-rails-3,view,Ruby On Rails,Ruby On Rails 3,View,我想根据用户选择的国家自动选择州。 我的意思是,如果用户选择美国,它会显示加利福尼亚州、纽约州等等 国家/地区型号 身份证 名字 州型号 身份证 国家识别号 郡 现在我用这样的方式展示这些领域 <% resource.build_user_profile if resource.user_profile.nil? %> <%= form_for(resource, :as => resource_name, :url => registration_path

我想根据用户选择的国家自动选择州。
我的意思是,如果用户选择美国,它会显示加利福尼亚州、纽约州等等

国家/地区型号

  • 身份证
  • 名字
型号

  • 身份证
  • 国家识别号
现在我用这样的方式展示这些领域

<% 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 %>
<%= 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 %>

资源名称,:url=>注册路径(资源名称),:html=>{:method=>:put,:class=>'form horizontal'})do | f |%>

尝试像这样更改表单

<% 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 %>
<%= 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 %>

谢谢您的帮助:)我尝试了您的代码,但这返回了错误:(我注意到我忘了在我的国家/地区选择字段中输入“\u en”。请告诉我国家/地区字段中的“name”是什么时候而不是“name”?请用表格开头更新您的问题(
form\u for
line)然后我会更新我的答案非常感谢。但是我注意到你在这里的方式显示了在同一个选择字段中国家和州的组合。你能把国家和州分开吗???这是出于目的。我从这个Railscast中得到了想法,但要看到它,你应该订阅(不是免费的)顺便问一下,rails在HTML中为您的选择生成了什么id?资源\名称\用户\配置文件\国家\ id和资源\名称\用户\配置文件\地区\ id?