【发布时间】:2015-08-12 12:42:18
【问题描述】:
我的计划模型中有两个日期时间列:starts_at 和 ends_at。
要求:创建/更新计划时,用户将看到:
- 1 选择菜单用于选择日期
- 1 选择菜单用于选择开始时间(小时:分钟)
- 1 选择菜单用于选择结束时间(小时:分钟)
我想让用户从单个选择菜单中选择日期。然后将日期保存在两个日期时间列中。我只希望日期相同,而不是时间。
我当前的代码让用户在两个日期时间属性上都输入日期,这很麻烦:
<%= f.label :starts_at %>
<%= f.datetime_select :starts_at %>
<%= f.label :ends_at %>
<%= f.datetime_select :ends_at %>
我试过了:
# view
<%= f.date_select :starts_at, order: [:day, :month, :year] %>
<%= f.time_select :starts_at, ignore_date: true %>
<%= f.time_select :ends_at %>
# controller
def update
@partner = Partner.find(params[:partner_id])
@schedule = @partner.schedules.find(params[:id])
@klass = Klass.find(schedule_params[:klass_id])
@schedule.activity_id = @klass.activity_id
date = Date.civil(schedule_params["starts_at(1i)"].to_i, schedule_params["starts_at(2i)"].to_i, schedule_params["starts_at(3i)"].to_i)
@schedule.ends_at = date
@schedule.update(schedule_params)
end
private
def schedule_params
params.require(:schedule).permit(:klass_id, :starts_at, :ends_at, :quantity)
end
但它不起作用。
【问题讨论】:
标签: ruby-on-rails datetime ruby-on-rails-4