我在Ruby on Rails中尝试如何找到素数。这是我的代码:
helper:app / helpers / 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
和我的观点:app / views / test / index.html.erb
<% (2..100).each do |i| -%>
<% if prime_number? i %>
<%= i %>
<% end -%>
<% end -%>
所以我的问题是:如何在计算时加载数据?我的意思是如果我在视图中将100替换为100000,那么当我的辅助方法计算时,如何在我的视图中查看数据? 我是否需要使用ajax或rails为其提供工具?
谢谢。
答案 0 :(得分:1)
简短回答:是的,你需要AJAX。
更长的答案:你可以使用Prototype Helper periodically_call_remote来调查你的一个动作,并在列表的末尾添加新的素数。
但是存在一个问题,与C等本机操作系统语言相比,Ruby非常慢。如果你想获得最多的素数结果,我会在C中编写素数代码并找到一种机制来访问结果。一种方法是让你的C应用程序将素数写入文件,然后你可以将该文件拖尾以获得新的素数。我相信你可以找到一个在某处找到素数的C例子。
即使您要在Ruby中编写素数代码,您也必须将其作为与Rails应用程序分开的进程运行,以便不断计算质数,因此您可以更快地完成它。实际上,Ruby对于这个计算来说可能不会太慢,对两者进行基准测试会很有趣。