Railsアプリに全文検索APIを実装しており、これまでThinkingSphinxで大きな成功を収めています。
日付範囲検索を実装して、「範囲の値が正しくありません」というエラーが発生し続けたいと思います。
これがコントローラーコードのスニペットです、そして私は次に何をすべきかについて少し立ち往生しています。
@search_options = { :page => params[:page], :per_page => params[:per_page]||50 }
unless params[:since].blank?
# make sure date is in specified format - YYYY-MM-DD
d = nil
begin
d = DateTime.strptime(params[:since], '%Y-%m-%d')
rescue
raise ArgumentError, "Value for since parameter is not a valid date - please use format YYYY-MM-DD"
end
@search_options.merge!(:with => {:post_date => d..Time.now.utc})
end
logger.info @search_options
@posts = Post.search(params[:q], @search_options)
ログを見ると、日付がTime.now.utcと同じ時間形式に変換されていないことを意味しているように見えるこのビットが表示されます。
withpost_date2010-05-25T00:00:00+00:00..Tue Jun 01 17:45:13 UTC 2010
何か案は?基本的に、特定の日付以降のすべての投稿を表示するために、「以降」の日付でAPIリクエストを渡そうとしています。日付はYYYY-MM-DD形式にするように指定しています。
ご協力いただきありがとうございます。クリス
編集: 日付パラメータのマージステートメントをこれに変更しました
@ search_options.merge!(:with => {:post_date => d.to_date..DateTime.now})
そして今、私はこのエラーを受け取ります
2010年5月25日火曜日の未定義のメソッド`to_i':日付
ですから明らかに、まだ正しく設定されていないものがあります...