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

Posted

技术标签:

【中文标题】如何让我的 user.address 州和国家/地区字段正确包含在我的视图中?【英文标题】:How do I get my user.address state and country fields included properly in my view? 【发布时间】:2016-07-02 19:23:31 【问题描述】:

在我的模型 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 %>

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

【问题讨论】:

你能告诉我们*us_states的样子吗?我认为应该是[[value, label],['ca', 'California']...] 【参考方案1】:

也许你应该这样做

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

希望对你有帮助

【讨论】:

以上是关于如何让我的 user.address 州和国家/地区字段正确包含在我的视图中?的主要内容,如果未能解决你的问题,请参考以下文章

合并 3 个集合以每行返回一个对象

国家、州和城市的 Java Rest Api

在一次查询中获取所有国家/地区的州和城市

WooCommerce:结账时预先选择并限制在一个州和城市

寻找位置 API (c#)

如何使用 Angular js 制作搜索类型下拉列表?