>

react를 프론트 엔드로 설정 한 rails 앱이 있습니다. 레일 컨트롤러에서 브라우저 기반 API를 호출합니다. Watir와 내 컨트롤러 내부의 일부 "입력"을 통해 터미널 내부의 통화 상태를 알 수 있습니다. 예를 들어 터미널에서 "Loading 1 % ..." "Loading 10 %"등이 표시 될 때까지 표시됩니다. 내가하려고하는 것은이 값을 프론트 엔드 응용 프로그램에 표시하는 것입니다. 레일을 처음 접했을 때 시작해야 할 부분이 확실하지 않습니다. call_api (username) 메소드를 사용하기 위해 프론트 엔드의 버튼에서 Ajax 호출을하고 있습니다. 지금까지 모든 것이 잘 작동합니다. 내가 추가하려는 유일한 것은 클라이언트 측의 통화 상태입니다.

보석을 사용해 보았지만 문제는 전체 앱이 루트 루트 "/"를 기반으로한다는 것입니다. 예를 들어 인덱스 메소드가 이와 같고 call_api 메소드가 이와 같다면

 def index
     @status = "started"
     gon.watch.status = @status
   end

 def call_api(username)
    @status = "new value for test"
    gon.watch.status = @status
    until @status == "Finished"
      @status = @browser.span(class: "monoFont").text
      puts "status" + @status
      sleep 1
    end
   end

브라우저 콘솔에 들어가서 console.log (gon.status)를 시도 할 때 여전히 앱이 인덱스 라우트에 있으므로 "started"값을 얻습니다. 아마도 더 좋은 방법이있을 것입니다. 진행 방법에 대한 도움과 권장 사항을 높이 평가합니다. 감사합니다


  • 답변 # 1

    잘못된 것이 아니라면 API가 웹에서 일부 스크래핑을 수행하는 동안 뷰에서 상태를 지속적으로 업데이트해야합니다. 따라서 API가 지속적으로 실행되고보기에서 실시간 업데이트가 필요하기 때문에 웹 소켓 또는 이와 유사한 것이 필요할 수 있습니다. 웹 소켓을 살펴보십시오.

  • 이전 android - xml의 ​​ImageView 바로 옆에 TextView를 만드는 방법
  • 다음 Kotlin은 이미 수퍼 클래스에 존재하는 인터페이스에서 메소드를 구현합니다