2010-04-03 31 views
2

我在Ruby on Rails中试图找到一个素数。这里是我的代码:素数 - 加载时的数据

帮手:应用程序/佣工/ 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 -%> 

所以我的问题是:如何在计算时加载数据?我的意思是,如果在我看来,如果我用100000取代100,那么在辅助方法计算时如何能够在我的视图中看到数据? 我是否需要使用ajax或rails为此提供工具?

谢谢。

回答

1

简短回答:是的,你需要AJAX。

较长的答案:你可以使用原型助手periodically_call_remote轮询你的行动之一,并增加新的素数到列表的末尾。

有一个问题,虽然,Ruby是非常缓慢相比,本机操作系统的语言,如C,如果你想获得最大的素数的结果,我会写的素数的代码在C和找到一种机制来访问结果。一种方法是让你的C应用程序将素数写入一个文件中,然后你可以使用这个文件来获得新的素数。我相信你可以在某处找到一个用于找到素数的C示例。

即使您要在Ruby中编写素数代码,您也必须将其作为Rails应用程序的独立进程运行,以便持续计算素数,所以您最好还是以更快的速度进行。事实上,Ruby的计​​算速度可能不会太慢​​,因此对两者进行基准测试会很有趣。