2010-04-03 6 views
2

루비 온 레일 즈에서 소수를 찾는 방법을 시도하고있었습니다.소수 - 데이터로드 중

도우미 : 응용 프로그램/도우미/test_helper.rb

module TestHelper     
    def prime_number? number  
    index = 2      
    tmp = 0      
    while index <= number   
     if tmp < 1     
     if (number % index) == 0 
      tmp += 1    
     end      
     else      
     return false    
     end       
     index += 1     
    end       
    return true     
    end        
end 

내보기 :/index.html.erb

<% (2..100).each do |i| -%> 
    <% if prime_number? i %> 
    <%= i %> 
    <% end -%> 
<% end -%> 

그래서 내 질문 응용 프로그램 /보기/테스트 여기 내 코드입니다 데이터 계산 중 데이터를 어떻게로드 할 수 있습니까? 100,000을 100,000으로 대체하면 헬퍼 메소드가 계산되는 동안 내 뷰에서 데이터를 볼 수 있습니까? 아약스를 사용해야합니까, 아니면 레일이 그 도구를 제공합니까?

감사합니다.

답변

1

짧은 대답 : 예, AJAX가 필요합니다.

길게 대답 : 프로토 타입 도우미 periodically_call_remote을 사용하여 작업 중 하나를 폴링하고 목록의 끝에 새 소수를 추가 할 수 있습니다.

Ruby는 C와 같은 네이티브 OS 언어에 비해 매우 느립니다. 소수의 결과를 가장 많이 얻으려면 C에 소수 코드를 쓰고 액세스 할 수있는 메커니즘을 찾아야합니다. 결과. 이를 수행하는 한 가지 방법은 C 응용 프로그램에 소수를 파일에 쓰도록하고 파일을 꼬집어 새로운 소수를 얻는 것입니다. 어딘가에서 소수를 찾는 C 예제를 찾을 수있을 것입니다.

루비에 소수 코드를 쓰는 경우에도 Rails 애플리케이션과 별도의 프로세스로 실행해야만 소수를 계속 계산할 수 있으므로 더 빠르게 수행 할 수 있습니다. 사실 루비는이 계산을하기에는 너무 느리지 않을 수도 있습니다. 두 가지를 벤치마킹하는 것이 흥미로울 것입니다.