キャッシングに関する問題があります。私はそれをどのように設定すべきか分かりません。 レールのキャッシングに問題があります。
submit_key = nil
pairs_email = Hash.new
pairs_type = Rails.cache.fetch("cache_typeform", :expires_in => 1.day) do
(0..9).each do
if submit_key.present?
url = "https://api.typeform.com/forms/#{typeform_id}/responses?page_size=1000&until=#{submit_key}"
response = RestClient.get url, {:Authorization => 'Bearer XXXXXXXXXXX'}
parsed = JSON.parse(response.body)
else
response = RestClient.get "https://api.typeform.com/forms/#{typeform_id}/responses?page_size=1000", {:Authorization => 'Bearer XXXXXXXXXXXXXXX}
parsed = JSON.parse(response.body)
end
parsed['items'].each do |item|
pairs_email[item['hidden']['email']] = item['token'] if item['hidden']['email'].present?
end
submit_key = parsed['items'][-1]['submitted_at'].chop
end
end
が、それは電子メールやIDを含むペアを返す必要がありますし、このペアは、より多くの情報を取得するために後に使用される: は、ここでは、コードです。しかし、何も戻っていない。
誰かが自分のコードで間違ったことを教えてもらえますか?私はどこかで何かを逃していますか?私はtypeformのAPIから情報を取得するために私のキャッシュを使用したい
UPDATE
:
results = Hash.new
if pairs_email[email].present?
url = "https://api.typeform.com/v1/form/#{typeform_id}?key=#{ENV['TYPEFORM_API_KEY']}&token=#{pairs_email[email]}"
response = RestClient.get(url)
parsed = JSON.parse(response.body)
results["email"] = parsed["responses"][0]["hidden"]["email"] # Email
results["first_name"] = parsed["responses"][0]["answers"]["textfield_25078009"] # prénom
results["last_name"] = parsed["responses"][0]["answers"]["textfield_25078014"] # nom
results["phone_number"] = parsed["responses"][0]["answers"]["textfield_25444504"] #N°
results["job"] = parsed["responses"][0]["answers"]["textfield_24904749"] # métier
results["status_legal"] = parsed["responses"][0]["answers"]["list_24904751_choice"] # statut légal ?
results["birthdate"] = parsed["responses"][0]["answers"]["date_24904754"] # Date de naissance
results["zipcode"] = parsed["responses"][0]["answers"]["number_24904755"] # Code postal
results["has_partner"] = parsed["responses"][0]["answers"]["yesno_53894471"] # has_partner
results["children"] = parsed["responses"][0]["answers"]["list_53894494_choice"] # Nombre d'enfants
results["optical_option"] = parsed["responses"][0]["answers"]["list_24904752_choice_32209601"] # optical_option
results["dental_option"] = parsed["responses"][0]["answers"]["list_24904752_choice_32209602"] # dental_option
results["sick_15d"] = parsed["responses"][0]["answers"]["list_24904752_choice_32209603"] # Sick_15d
results["target_year"] = parsed["responses"][0]["answers"]["list_24905736_choice"] # target_year
results["monthly_income"] = parsed["responses"][0]["answers"]["number_24904756"] # monthly_income
results["independent"] = parsed["responses"][0]["answers"]["yesno_53895024"] # independent_1_year
#results["subject_to_discuss"] = parsed["responses"][0]["answers"]["textarea_24904759"] # Avez-vous des sujets dont vous voulez discuter
end
最初に、apiエンドポイントからの応答が成功したかどうかを確認します。 第2に、キー 'cache_typeform'がすでにキャッシュストア内に存在し、nilを指していることがあります。つまり、キャッシュキーにはキャッシュストアに値が格納されていません。 rails consoleから 'Rails.cache.clear'を実行してキャッシュをクリアし、そうでないかどうか確認することができます。 最後に、apiエンドポイントからの応答が良好で、キャッシュブロックを削除して目的の出力を取得できるかどうかを再度確認します。 –
ところで、あなたの質問に明示的な詳細を加えないでください。他の人が悪用する可能性があります。テスト目的で公開されていない限り、あなたの質問に認証の詳細を追加する必要はありません。 –
こんにちは@PamioSolanky、あなたの答えに感謝します。キャッシュをクリアしようとしましたが、何も起こりませんでした。 btwをキャッシュせずに動作します。 承認をいただきありがとうございます。それを完全に削除することを忘れてしまった。 –