好的,所以我需要进行设置如下的搜索:
从:(搜索字段)到:(搜索字段)
它只需要显示等于或介于这些字段之间的日期。我该怎么做?
这是写在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]})
你可以像下面这样写条件,
User.where("created_at >= ? and end_date <= ?",from_date, end_date),
from_date,end_date --> 你需要的 from_date 和 end_date 存储在变量中
希望能帮助到你!!
您可以使用范围进行这种搜索。例如:
User.where(registred_at: from_field..to_field)
首先在 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