0

好的,所以我需要进行设置如下的搜索:

从:(搜索字段)到:(搜索字段)

它只需要显示等于或介于这些字段之间的日期。我该怎么做?

4

4 回答 4

4

这是写在Rails 指南中,第 2.2.1 段:

Client.where("created_at >= :start_date AND created_at <= :end_date", {:start_date => params[:start_date], :end_date => params[:end_date]})
于 2012-08-31T20:09:13.637 回答
0

你可以像下面这样写条件,

User.where("created_at >= ? and end_date <= ?",from_date, end_date),
from_date,end_date --> 你需要的 from_date 和 end_date 存储在变量中

希望能帮助到你!!

于 2012-08-31T21:00:08.617 回答
0

您可以使用范围进行这种搜索。例如:

User.where(registred_at: from_field..to_field)

于 2012-09-01T00:21:22.547 回答
0

首先在 form_tag 搜索中设置您的参数

= form_tag foo_path(@foo), :method => :get do
  = text_field_tag :start_date, params[:start_date]
  = text_field_tag :end_date, params[:end_date]
  = submit_tag "Search", :class => "btn btn-primary"

最重要的是在控制器中设置参数的定义,如果您的搜索在索引中

def index
  @foos = Foo.all
  if params[:start_date].present?
    start_date = Date.parse(params[:start_date])
    @foos = @foos.where("foo.foo_date >= ?", start_date)
  end
  if params[:end_date].present?
    start_date = Date.parse(params[:end_date])
    @foos = @foos.where("foo.foo_date >= ?", end_date)
  end
end
于 2014-07-07T17:47:53.110 回答