下拉日期选择器的格式

时间:2015-12-23 01:58:25

标签: ruby-on-rails

我正在推送rails入门教程,并尝试为每个日期元素添加下拉菜单:日,月和年。 我的HTML很完美,但没有值传递给控制器​​的CREATE操作

这是我的代码

<p>
<%= f.label :start %><br>
<%= select_day(Date.today) %>
<%= select_month(Date.today) %>
<%= select_year(Date.today, :start_year => Date.today.year, :end_year => 5.years.from_now.year) %>
</p>

模型中的字段名为start。 我侦测我没有将值传递给控制器​​,但我不知道如何做到这一点......

1 个答案:

答案 0 :(得分:1)

首先,您需要为每个下拉列表命名:

<%= select_day(Date.today, {}, name: 'start_day') %>
<%= select_month(Date.today, {}, name: 'start_month') %>
<%= select_year(Date.today, { :start_year => Date.today.year, :end_year => 5.years.from_now.year }, name: 'start_year' ) %>

然后你需要在控制器中处理这个问题:

class YourController < ApplicationController
  before_action :set_start, only: :create

  # your actions

  private

  def set_start
    params[:your_model][:start] = "#{params[:start_year]}/#{params[:start_month]}/#{params[:start_day]}"
  end      
end

玩得开心!