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"