9

我有一个如下表格:

<%= form_for(@car, :html => {:class => 'form-horizontal' }) do |f| %>
  <% if @car.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@car.errors.count, "error") %> prohibited this car from being saved</h2>
      <ul>
        <% @car.errors.full_messages.each do |msg| %>
          <li><%= msg %></li>
        <% end %>
      </ul>
    </div>
  <% end %>
  <div class="field">
    <%= f.label :price %><br />
    <%= f.text_field :price %>
  </div>

  <div class="field">
    <%= f.label :model_year %><br />
    <%  %>
  <% end %>
</div>

我想为从 100 年前开始到未来一年的车型年选择一个系列。我试过了

<%= f.select_year :model_year%>

但它说 select_year 不是一个有效的方法。试过了

<%= f.date :model_year, :discard_month => true %>

也无济于事。有什么想法吗?

4

1 回答 1

13

select_year是一个帮助器,它生成带有选项的完整选择标签。由于您使用form_for而不是form_tag,因此您需要使用可以在表单构建器对象上调用的帮助程序。

<%= f.select :model_year, (Time.zone.now.year - 100)..(Time.zone.now.year + 1) %>

参考:http ://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-select_year

于 2013-10-08T23:32:38.610 回答