我正在推送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。 我侦测我没有将值传递给控制器,但我不知道如何做到这一点......
答案 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
玩得开心!