Простое число - данные при загрузке - PullRequest
2 голосов
/ 03 апреля 2010

Я пытался найти в 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 или рельсы для этого?

Спасибо.

1 Ответ

1 голос
/ 03 апреля 2010

Краткий ответ: да, вам понадобится AJAX.

Более длинный ответ: вы можете использовать Prototype Helper periodically_call_remote , чтобы опросить одно из ваших действий и добавить новые простые числа в конец списка.

Хотя есть проблема, Ruby очень медленный по сравнению с родными языками ОС, такими как C. Если вы хотите получить результаты с простыми числами, я бы написал код с простыми числами на C и нашел бы механизм доступа к Результаты. Один из способов сделать это состоит в том, чтобы приложение C записывало простые числа в файл, и вы можете указать -f этот файл, чтобы получить новые простые числа. Я уверен, что вы можете найти пример C для поиска простых чисел где-то.

Даже если бы вы писали код простого числа в Ruby, вам пришлось бы запускать его как отдельный процесс от вашего Rails-приложения, чтобы он непрерывно вычислял простые числа, так что вы могли бы также сделать это быстрее. На самом деле, Ruby может показаться не слишком медленным для этого расчета, было бы интересно сравнить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...