我在表单中有以下字段,当我加载它以进入新记录开始日期为2016年并下降到1900年时,一切都很好。它将正确地保存到记录中。但是当我去编辑这个记录时,它每次都会加载2016年的日期…
我想让它显示保存到数据库的任何日期。
<%= f.select :year, options_for_select((1900..Date.today.year+1).to_a.reverse), {:prompt => 'Year', :class=>"pointer" } %>
而且这是在一个嵌套的表单中,可能有几个车辆,所以不能只使用记录实例变量。
是这样嵌套的:
<%= f.fields_for :vehicles do |builder| %>
<%= render "shipments/partials/vehicle_fields", :f => builder %>
<% end %>
所有其他字段都可以正常工作…
vehicle_fields:
<section style="margin-bottom: 0;" class="auto-container fields">
<div class="row">
<div class="col col-md-2">
<label class="select">
<%= f.select :year, options_for_select((1900..Date.today.year+1).to_a.reverse), {:prompt => 'Year', :class=>"pointer" } %>
</label>
</div>
<div class="col col-md-4">
<label class="input">
<%= f.text_field :make, :placeholder => "Make" %>
</label>
</div>
<div class="col col-md-4">
<label class="input">
<%= f.text_field :model, :placeholder => "Model" %>
</label>
</div>
<div class="col col-md-2">
<p class="btn btn-primary pull-right" style="margin: 0 0 0 20px"><%= button_to_remove_fields "Remove", f %></p>
</div>
</div>
</section>
找到答案了
<%= f.select :year, options_for_select((1900..Date.today.year+1).to_a.reverse, :selected => f.object.year), {:prompt => 'Year', :class=>"pointer" } %>
获取嵌套对象的值,可以这样做:
f.object.year <<< in my case i needed the year