Этот простой метод не работает в Rails helper - PullRequest
0 голосов
/ 01 марта 2011

Эй, ребята Я новичок в рельсах. Я практикую то, что я узнал сегодня о rails helper и ruby, написав этот код:

в /apps/helpers/home_helper.rb

module HomeHelper
  def each(from, to, by)
    x = from
    while x <= to
      yield x
      x = x + by
    end
  end
end

в /apps/views/index.html.erb

<p><%= each(2,16,3){|x| x } %></p>

Но после запуска сервера и перехода к локальному хосту: 3000 / home / index там ничего не осталось.

кто-нибудь говорит мне, что я сделал не так? Спасибо

Ответы [ 2 ]

2 голосов
/ 01 марта 2011

Как уже говорили другие люди, есть лучшие методы, которые вы пытаетесь достичь, встроенные в ruby. В частности, метод #step:

2.step(16, 3) { |i| puts i }

Также обратите внимание, что ваш index.html.erb файл должен был быть в apps/views/home.

0 голосов
/ 01 марта 2011

Вам не нужно писать этот метод. Сделайте это вместо:

<% [2, 16, 3].each do |n| %>
 <p><%= n %></p>
<% end %>

Причина этого в том, что метод 'each' 1) уже является методом Ruby для любого перечисляемого объекта и 2) плохая практика изобретать такое базовое колесо.

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