日期参数最低日期为今天的网址

时间:2017-09-23 11:10:07

标签: javascript ruby-on-rails ajax date datepicker

我有一个预订应用程序,我在Ruby rails应用程序中将Date params传递给来自Bootstrap Date-picker的URL,它还检测并处理URL上无效日期的手动输入。

但是,在URL用户可以将Date params更改为过去的日期并继续下一步。由于我将最小日期设置为日期选择器中的日期,我想要阻止此操作,我还需要检测过去的“有效”日期,因为它目前允许用户进行预订而不是重定向(如检测到的那样)当用户输入无效日期时,即55/09/2017)

它适用于JavaScript,但不适用于使用Ajax的页面。 有没有什么办法解决这一问题 ?或者无论如何不使用JavaScript来处理它?<​​/ p>

注意: - 我将Date值动态传递给下一页,它与Database中的数据没有任何关系。

更新:工作代码

module DateCheckerHelper
  def min_date_validation
    date =Date.strptime(params[:outbound],"%d/%m/%Y") 
    date <  Date.today
  end
end


class MyController < ApplicationController

  include DateCheckerHelper

  def show
    if min_date_validation
      redirect_to root_path
    end  
  end
end

处理参数错误(无效日期)

class ApplicationController < ActionController::Base

  rescue_from ArgumentError, :with => :argument_error_rescue
  private

  def argument_error_rescue
    redirect_to root_path
  end
end  

1 个答案:

答案 0 :(得分:0)

我通过params使用这个设置来处理日期:

再次编辑:更新以反映助手和日期选择器的使用,如果日期早于今天,则使用重定向。

class SomeClass < ApplicationController
  def method
    if !date_valid?(params[:date])
      redirect_to root_url, notice: "What were you thinking?"
    end
  end
end

module SomeHelper
  def date_valid?(date)
    date_array = date.split("/").map(&:to_i)
    Date.valid_date?(*date_array) && Date.new(date) > Date.today
  end
end