我是Rails的新手,我正试图构建一个截止日计算器,它的工作方式与这个完全一样:(单击此处)。
正如您从超链接示例中看到的那样,我的截止日期计算器将允许用户在表单字段中输入一个给定的数字,以反映其截止日期之前的天数。然后,我的截止日期计算器将将该数字添加到用户选定的给定日期。然后,计算器将根据这两个用户的输入打印最后期限的结果日期。
例如:假设一个用户收到一封信,上面写着:“从2/5/14开始你有45天的时间来发送对这封信的回复.”用户将输入" 45“(天)和" 2/5/14”(开始日期),然后单击“计算”按钮。然后,网站会显示这样的内容:“你的截止日期是2014年3月22日星期六。”到目前为止.
我的app/view/pages/about_page.html.erb文件包含以下代码块:
<div class="row">
<div class="col-xs-2">
<%= form_tag do %>
<%= number_field_tag 'Days' %>
<p>AFTER</p>
<%= date_select('Start', 'start_date') %>
<%= submit_tag 'Calculate' %>
<% end %>
<div>
<%= @deadline %>
</div>
</div>
</div> 我的应用程序/资产/控制器/pages_控制员. of文件包含以下代码块:
class PagesController < ApplicationController
* * * *
def about_page
@days = params[:Days]
@start = params[:Start]
@deadline = 'Print the date that is X days after the start date selected by the user.'
end
* * * *
private
def page_params
params.require(:page).permit(:name, :position, :visible)
end所以,我的问题是,如何让Rails将用户的":Days“输入添加到用户的”开始“日期输入中,然后打印出最终的”截止日期“?我一直在寻找解决方案,但还没有找到任何能清楚解释如何计算用户输入开始日期和开始日期后天数的未来日期的方法。请帮帮我!
发布于 2014-02-06 06:08:16
您只需使用+运算符将天数添加到日期,如
Date.today + 10 => Sun, 16 Feb 2014在您的例子中,这将转换为
@deadline = Date.new(params[:Start][:year].to_i, params[:Start][:month].to_i, params[:Start][:day].to_i) + params[:Days].to_ihttps://stackoverflow.com/questions/21594848
复制相似问题