如何让我的 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 州和国家/地区字段正确包含在我的视图中?的主要内容,如果未能解决你的问题,请参考以下文章