在/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>
但是在我运行服务器之后,导航到localhost:3000 / home / index就没有了。
有人告诉我,我做错了什么?感谢
答案 0 :(得分:2)
正如其他人所说的那样,有更好的方法可以帮助您实现内置于ruby中的功能。特别是#step方法:
2.step(16, 3) { |i| puts i }
另请注意,您的index.html.erb
文件应位于apps/views/home
。
答案 1 :(得分:-1)
您不需要编写该方法。这样做:
<% [2, 16, 3].each do |n| %>
<p><%= n %></p>
<% end %>
原因是方法'each'1)已经是任何Enumerable对象上的Ruby方法,2)重新发明这样一个基本轮子是不好的做法。