さて、次のように設定された検索を行う必要があります。
From: (検索フィールド) To: (検索フィールド)
これらのフィールドと同じか、またはその間の日付のみを表示する必要があります。どうすればいいですか?
さて、次のように設定された検索を行う必要があります。
From: (検索フィールド) To: (検索フィールド)
これらのフィールドと同じか、またはその間の日付のみを表示する必要があります。どうすればいいですか?
これは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),where
from_date,end_date --> 必要な from_date と end_date は変数に格納されています
それが役に立てば幸い!!
この種の検索には range を使用できます。例えば:
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