##非同期処理を実行
code
ruby
1#controller 2 3 4def quizlet 5 @response=[] 6 response = Unirest.get "https://api.quizlet.com/2.0/search/sets/?client_id=7JH38T27zM&whitespace=1", 7 parameters:{ whitespace: true,q: "Duo3.0",term:100,sort:"most_studied"} 8 res=response.body 9 10 quizlet_ids=[] 11 res["sets"].each do|res| 12 quizlet_ids<<res["id"] 13 end 14 15 16 quizlet_words = Unirest.get "https://api.quizlet.com/2.0/sets/?client_id=7JH38T27zM&whitespace=1", 17 parameters:{ whitespace: true,set_ids:"#{quizlet_ids}"} 18 19 quizlet_words.body.each do|words| 20 words["terms"].each do|word| 21 response=word 22 response["quizlet_id"]=words["id"] 23 response["check_id"]=word["id"] 24 response["question_language"]= words["lang_terms"] 25 response["answer_language"] = words["lang_definitions"] 26 @response<<response 27 @response.each do|response| 28 response 29 response.delay.quizlet_save(response["quizlet_id"],response["check_id"],response["term"],response["definition"],response["question_language"],response["answer_language"]) 30 response.delay.quizlet_create_groups(response["quizlet_id"],response["check_id"]) 31 end 32 end 33 end 34 end 35
ruby
1#model 2 3def quizlet_save(quizlet_id,check_id,question,answer,question_language,answer_language) 4 unless Word.find_by(check_id:check_id)&&Word.find_by(quizlet_id:quizlet_id) 5 Word.create(quizlet_id:quizlet_id,check_id:check_id,title:"Quizlet",question:question,answer:answer,user_id:1,tag_list:"English,duo3.0,Vocabulary", 6 question_language:question_language,answer_language:answer_language) 7 end 8 end 9 10 def quizlet_create_groups(quizlet_id,check_id) 11 word=Word.find_by(check_id:check_id) 12 unless word == nil 13 checking_word=Word.find_by(quizlet_id:quizlet_id) 14 group=Group.find_by(id: checking_word.group_id) 15 if group==nil 16 created_group=Group.new(user_id:1,title:"Quizlet",explanation:"Quizlet Duo3.0") 17 created_group=created_group.save(validate: false)&&created_group 18 word.update_attribute(:group_id,created_group.id) 19 else 20 word.update_attribute(:group_id,group.id) 21 end 22 end 23 end
あなたの回答
tips
プレビュー