0

我正在尝试使用带有表单的 Rails 日期助手。但是,我只想得到年份。我从 simple_form gem https://github.com/plataformatec/simple_form获得了下面的表单代码。discard_daydiscard_month阻止显示月份和日期选择框。但是,当我提交表单时,我收到了这个多参数错误

2 error(s) on assignment of multiparameter attributes
"start(1i)"=>"2013",
 "start(2i)"=>"4",
 "start(3i)"=>"23",
 "end(1i)"=>"2011",
 "end(2i)"=>"4",
 "end(3i)"=>"23",

看起来 Rails 只是替换了当前的日期和月份,因为表单中没有输入任何内容。

我想知道是否有办法阻止 Rails 包含当前日期和月份,或者我应该在控制器中处理它。现在,创建动作看起来像这样

   def create
    @employment = current_user.employments.build(params[:employment])
    if @employment.save
    ....

如果我不能阻止 Rails 包含当前日期和月份,那么我会在控制器中做什么?

  <%= f.input :start, as: :date, start_year: Date.today.year - 90,  
                              end_year: Date.today.year, discard_day: true, discard_month: true %>


   <%= f.input :end, as: :date, end_year: Date.today.year - 90,
                              end_year: Date.today.year, discard_day: true, discard_month: true %>
4

1 回答 1

1

开始列和结束列的数据类型是什么?如果您只是存储一年,则可以将它们设置为整数类型而不是日期,然后使用<%= f.input :start, collection: (Date.today.year - 90)..(Date.today.year) %>.

于 2013-04-23T03:56:41.807 回答