Closed nakamitsu-nozomi closed 3 years ago
@nakamitsu-nozomi
tweet_controller.rbの以下の記載ですが、
def index
@q = Tweet.where(user_id: @user.id).ransack(params[:q])
@tweets = @q.result(distinct: true).order(tweet_created_at: :desc).includes(:media).page(params[:page]).per(PER_PAGE)
@now = Time.current
end
@now = Time.current
は秒単位の形式なので、最初に検索画面表示するときと、検索後では異なる値になることが原因ではないでしょうか?
そもそも日付検索が機能してないことがバグの原因かなと思いました。
私の環境では、現在のコードにて、rails db:seedで作成したツイートデータだけは検索することができるのですが、twitterから取得したツイートデータを日付検索することができません。
index.html.erb
<%= f.radio_button :tweet_created_at_lteq,@now.prev_year %>1年以上前
に下記のようにTime型の値を入れると、twitterから取得したツイートデータを含めて検索できるので、おそらく@now.prev_year
の値の設定仕方が違うのかなと思うのですが、解法がわからず困ってます。
<%= f.radio_button :tweet_created_at_lteq, "Sat, 21 Nov 2020 02:28:09 UTC +00:00"%>1年以上前
もう一度、アドバイスをいただけませんでしょうか。
@nakamitsu-nozomi
私は過去のtwitterデータは取得できていなかったので、tweet_created_at
を1年前、2年前に書きかえたデータに対して検索を行いましたが、問題なく検索できました。
「ラジオボタンで日付選択した際に、ラジオボタン 表示が消えてしまう」ことに関してコメントすると、
now = Time.current
は秒単位まで持っているので最初に検索画面表示するときと、検索後では異なる値になる。@now.ago(2.years)
などのラジオボタンの表示が維持されるには、検索前後で@now.ago(2.years)
などの値が変化しないことが必要なので、@nowには、以下のように値が変化しない(正確に言うと変化しにくい)日付単位にしてはどうでしょうか?
@now = Date.today
@great084 検索機能が作動していないことは私の勘違いだったみたいです。申し訳ありません。@now = Date.today に修正し解決できました!ありがとうございました。
バグの現象
ラジオボタンで日付選択した際に、ラジオボタン 表示が消えてしまう
本来あるべき動作
選択した日付項目にチェックがつく
cose
実際の動作
ラジオボタンで日付選択した際に、検索はできるが、ラジオボタに何も表示されない 。
バグの原因
(2年前ボタンを押し)日付検索した際のSQL文です
そのときのransackのパラメータ
SQL文やURLに乗っているパラメータをみたのですが、 原因がわからず困ってます。 アドバイスお願い致します。