안녕하세요 모든 초보자 질문입니다.액션 컨트롤러 도우미 클래스를 만드는 방법과 컨트롤러 액션에서 액션 컨트롤러 도우미 클래스에 액세스하는 방법은 무엇입니까?
사용자에게 결과를 보여준 후 백그라운드에서 다른 작업을 수행하여 데이터베이스를 업데이트해야하는 레일 애플리케이션을 하나 만들고 있습니다.
내가 원격 서버에서 데이터를 가져 오기 위해 타사 API를 사용하고 내 컨트롤러의 액션에서
(미안 내가 일을 설명에서 가난한 오전, 상황에 내 예제 코드 참조). 가져온 데이터를 사용자에게 표시 한 후 가져온 데이터의 사용자 정의 데이터로 데이터베이스 테이블을 업데이트하려고합니다.
class MyController < ApplicationController
def SomeAction
#some logic
@result = FetchDataFromApi#Using third party api to fetch huge data
#show result to user
#after showing i need to do following operations elsewhere (controller helper)
#based on some fetched result i want to update my table
myId = @result.id
dataObj = MyModel.find(myId)
info = @result.information.gsub(',',' ') #some string operation
dataObj.update_attributes(:info, info)
end
end
사용자에게 결과를 표시 한 후 추가 작업을 수행하려면 spawnling
보석을 사용할 수 있습니다. 그러나 헬퍼 또는 다른 레일 물건으로이 작업을 수행 할 수 있는지 궁금합니다.
당신은 배경에서 아무것도 실행해야하는 경우 sidekiq 또는 유사한 도구를 사용해야합니다. – BroiSatse
@BroiSatse는 actioncontroller 도우미와 관련된 부작용이 있습니까? – Aparichith
ActionCOntroller 헬퍼는 sth를 염두에 두지 않는 한 컨트롤러와 뷰 사이의 다리 역할을합니다. 응답은 요청 수명주기의 마지막 단계로 항상 보내 지므로 비 백그라운드 코드는 응답을 보내기 전에 실행을 완료해야합니다. 스레드를 사용해 볼 수도 있지만 문제가 더 많이 발생합니다. Sidekiq은 모든 프로젝트에서 사용한 솔루션이며, 그 일을 올바르게 수행하는 것 같습니다. – BroiSatse