我在Ruby on Rails上工作,我无法弄清楚如何在form_for中使用select_month。我正在尝试的是
<%= form_for(@farm) do |f| %>
<div class="field">
<%= f.label :harvest_start %><br />
<%= select_month(Date.today, :field_name => 'harvest_start') %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
正在输出
["harvest_start", nil]
谢谢你的帮助。抱歉,如果格式不正确。
答案 0 :(得分:3)
为了将选择月份与表单构建器的其余部分保持一致,请使用date_select
而不是日期或月份:
date_select(object_name, method, options = {}, html_options = {})
只需使用f.date_select :harvest_start, {order: [:month]}
,即将order: [:month]
或discard_year: true, discard_day: true
添加到options
哈希,如docs
您可以像在选项哈希中一样传入所有剩余选项。类似的东西:
<%= f.date_select :birth_date, {prompt: true, order: [:month]}, class: 'form-control' %>
答案 1 :(得分:2)
(这在T. Weston Kendall的评论中得到了回答,所以只是让它成为一个正确的答案)
以下代码是我开始工作的。
<强> _form.html.erb 强>
<div class="field">
<%= f.label :harvest_start %><br />
<%= f.collection_select :harvest_start, Farm::MONTHS, :to_s, :to_s, :include_blank => true %>
</div>
<强> farms_controller.rb 强>
@farm.harvest_start = params[:harvest_start]
我也有select_month工作,但我需要:include_blank
,我不想花时间搞清楚如何处理数组中的nil。