【问题标题】:Selected option for ruby nested formruby 嵌套表单的选定选项
【发布时间】:2015-08-01 00:03:58
【问题描述】:

我有一个表格

<%= form_for @customer do |f| %>
<div class="row">
    <div class="col-md-4 col-sm-4 col-xs-4">
        <%= f.text_field :name, placeholder: "Customer Name", class: 'form-control'%>
    </div>
</div>
<br/>
<table>
  <thead>
  <tr>
    <td>Address1</td>
    <td>Address2</td>
    <td>City</td>
    <td>State</td>
    <td>Zip</td>
    <td>Delete</td>
  </tr>
  </thead>
  <%= f.fields_for :customer_addresses do |builder| %>
      <%= render 'customer_addresses/table_form', f: builder  %>
  <% end %>
</table>
<%= link_to_add_fields 'Add Field', f, :customer_addresses %>

<br/><br/>
<%= f.submit class: "btn btn-default"  %>

使用嵌套表单 (customer_addresses/table_form)

<tr>
  <td><%= f.text_field :address1, class: 'form-control', placeholder: 'Address 1' %></td>
  <td><%= f.text_field :address2, class: 'form-control', placeholder: 'Address 2' %></td>
  <td><%= f.text_field :city, class: 'form-control', placeholder: 'City' %></td>
  <td><%= f.select :state, options_for_select(us_states), class: 'form-control' %></td>
  <td><%= f.text_field :zip, class: 'form-control', placeholder: 'Zip' %></td>
  <td><%= f.hidden_field :_destroy %><%= link_to 'remove', '#', class: 'remove_fields' %></td>
</tr>

一切都很好,并且很好地呈现了表单。但是,当 :state 字段的 select 在编辑窗口中呈现时,它始终是阿拉巴马州(us_states 辅助函数导出的第一个状态。)我将添加到 f.select 以便选择状态在客户地址中是否使用所选选项呈现?

【问题讨论】:

    标签: ruby-on-rails ruby forms select


    【解决方案1】:

    没有理由将options_for_selectselect 一起使用(仅与select_tag 一起使用),因为select 会为您执行此操作,只要您将传递给options_for_select 的参数传递给您。

    因此,您必须执行以下操作:

    f.select :state, us_states #, etc
    

    我假设:state 不是一个关联,如果是,那么它应该是:state_id

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      相关资源
      最近更新 更多