如何让我的 user.address 州和国家/地区字段正确包含在我的视图中?

How do I get my user.address state and country fields included properly in my view?

在我的模型中,app/models/user.rb,我有

class User < ActiveRecord::Base
  …
  belongs_to :address

在我的模型中,我尝试像这样收集地址字段

<%= form_for(@user) do |f| %>
…
    <%= f.fields_for :address do |addr| %>
    <%= addr.label :address, "Hometown" %><br/>
    <div class="field"><%= addr.text_field :city, placeholder: "City", :class => 'textField' %></div>
    <%= select_tag :state, options_for_select([["Select State", nil], *us_states]), {class: "selectField selectMenu form-control"} %>
    <%= country_code_select(:country, :country,
          [[ 'US', 'United States' ], [ 'CA', 'Canada' ]],
          {:include_blank=>true},
          {:style=>''}
          ) %>
    <% end %>
<% end %>

但是当我的州 select 菜单被渲染时,它是用 id “state” 渲染的,提交我的用户表单不会选择我的州(或国家)菜单。我需要在我的模型中包含什么 ID 才能将州和国家/地区添加到我的 user.address 模型中?

也许你应该这样做

<%= f.fields_for :address do |addr| %>
    <%= addr.label :address, "Hometown" %><br/>
    <div class="field">
      <%= addr.text_field :city, placeholder: "City", :class => 'textField' %>
    </div>
    <%= addr.select :state,  *us_states, {prompt: 'Select State'}, class: "selectField selectMenu form-control" %>
    <%= addr.select :country,  [[ 'US', 'United States' ], [ 'CA', 'Canada' ]], { include_blank: true }%>
<% end %>

希望对您有所帮助