Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何将GET参数从自定义日期格式转换为数据库日期格式?_Mysql_Ruby On Rails_Ruby_Datetime_Activerecord - Fatal编程技术网

Mysql 如何将GET参数从自定义日期格式转换为数据库日期格式?

Mysql 如何将GET参数从自定义日期格式转换为数据库日期格式?,mysql,ruby-on-rails,ruby,datetime,activerecord,Mysql,Ruby On Rails,Ruby,Datetime,Activerecord,在我的发票模型的索引视图中,我有一个表单,用户可以使用该表单根据特定条件过滤发票: <%= form_tag invoices_path, :method => 'get' do %> <%= text_field_tag :number, params[:number] %> <%= text_field_tag :after, params[:after] %> <%= text_field_tag :before,

在我的
发票
模型的
索引
视图中,我有一个表单,
用户
可以使用该表单根据特定条件过滤
发票

<%= form_tag invoices_path, :method => 'get' do %>

    <%= text_field_tag :number, params[:number] %>

    <%= text_field_tag :after, params[:after] %>
    <%= text_field_tag :before, params[:before] %>

    <%= text_field_tag :min, params[:min] %>
    <%= text_field_tag :max, params[:max] %>

    <%= submit_tag "Search", :name => nil %>

<% end %>
“get”do%>
零%>

class InvoicesController

class发票=?”,日期)
结束
定义自我日期在(日期)之前
其中(“日期我建议您:


希望能有所帮助。

最简单的方法是使用日期选择器类型组件。这样,您总能获得正确的格式。更简单但更笨重的替代方法是使用日、月和年的组合框。感谢您的帮助。
class InvoicesController < ApplicationController

  def index
    @invoices = current_user.invoices.search(params)
  end

  ...

end
class Invoice < ActiveRecord::Base

  belongs_to :user

  def self.search(params)
    data = all
    data = data.number_contains(params[:number]) if params[:number]

    data = data.date_is_after(params[:after]) if params[:after]
    data = data.date_is_before(params[:before]) if params[:before]

    data = data.total_is_more_than(params[:min]) if params[:min]
    data = data.total_is_less_than(params[:max]) if params[:max]

    data
  end

  def self.date_is_after(date)    
    where("date >= ?", date)
  end

  def self.date_is_before(date)    
    where("date <= ?", date)
  end

  ...

end
▶ d = Date.parse '12/08/2014'
# => #<Date: 2014-08-12 ((2456882j,0s,0n),+0s,2299161j)>
▶ d = Date.parse '12.08.2014'
# => #<Date: 2014-08-12 ((2456882j,0s,0n),+0s,2299161j)>
▶ d.to_s
# => "2014-08-12"