一日以内にクリックされて変更がなかったら無効にするっていうふうにしなければいけなくて
1.パスワード再設定でメールアドレスを入力し、送信
2.メールアドレスにパスワード設定画面用のURLが届く(認証トークン付き、1日間有効)
3.メールをクリック変更完了、一日以内にクリックしないと変更できない
def edit if check_token(params[:ett]) new else @target_url = params[:target_url] @is_day = false end end def check_token(token) employees = EmployeesToken.find_by(token: token) return (employees.updated_at+1.days).to_datetime >= DateTime.now end
メールをクリックし変更画面にいく場合
check_token(params[:ett])
でparamとしてtokenが渡ってきているのでtokenをもとにデータを探して比較してあげています。
しかし
メールをクリックせずに普通にパスワード再設定をする場合は
paramにtokenは渡って来ないのでcheck_tokenのとこで処理が落ちてしまいます。
自分の考え的にはparamがnillだったらreturn trueを返してあげようと思っているのですがおかしいでしょうか?
def check_token(token) if token == nill{ return true } employees = EmployeesToken.find_by(token: token) return (employees.updated_at+1.days).to_datetime >= DateTime.now end
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。