2011-03-01 42 views
0

嘿夥計 我是新來的rails。我的做法是什麼我今天學了有關編寫這些代碼軌道助手和紅寶石塊:在/apps/helpers/home_helper.rb這個簡單的方法在Rails幫手中不起作用

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

'each'是保留的。我假設你試圖覆蓋這個默認值? – s84 2011-03-01 03:09:22

+0

@Sam我不打算重寫默認值,我只是做了一個簡單的代碼,可以測試我今天所學的有關塊的知識,我將方法名稱更改爲myeach,但它仍然沒有任何內容。 – mko 2011-03-01 08:58:04

+0

@Sam:'每個'在ruby中都不是保留字。它是一個'Enumerable'的方法,但你完全可以自由地實現你自己的每一個。 – nathanvda 2011-03-04 16:05:39

回答

-1

您不需要編寫該方法。做到這一點,而不是:

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

這樣做的原因是,該方法「各自」 1)是已經任何枚舉對象上的紅寶石方法和2)它是實踐差重新發明這樣一個基本的車輪。

+0

他沒有試圖通過這些整數數組來實現。 – Austin 2011-03-01 07:06:04

+0

其實這不回答問題恕我直言。 – nathanvda 2011-03-04 16:09:00

2

正如其他人所說,有更好的方法來回想你想要實現的內置到紅寶石。具體的方法#步驟:

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

另外請注意,您的index.html.erb文件應該已經在apps/views/home