2013-05-27 165 views
2

我可能缺少一些東西。 比方說我有一個輔助功能,在app /傭工/ foo_controller.rb,代碼如下:Ruby on Rails - 在html.erb中使用助手

def sample_helper(count) 
    #implementaton... 
end 

,我想用這個幫手通過軌道生成一個網頁,該代碼如下:

<%= sample_helper(user.id) %> 

如果我嘗試運行網頁,它會拋出一個錯誤,指出該方法未定義。 在此先感謝!

回答

0

是你的幫助應該是在一個名爲app /傭工/ foo_helper.rb包含同名AA模塊作爲助手(駱駝化)文件一樣:

module FooHelper 
    def sample_helper(cont) 
    # implementation 
    end 
end 

就是這樣鐵路汽車加載助手。

2

你不完全有正確的命名約定。

名稱你的助手文件app/helpers/foo_helper.rb和它,你應該有這樣的:

module FooHelper 
    def sample_helper(count) 
    "#{count} items" # or whatever 
    end 
end 

而現在,從FooController呈現的任何觀點,你應該能夠使用sample_helper方法。


另外,你應該知道,如果你使用rails generator這個結構是爲你設置的。您只需將方法添加到生成的文件中即可。這樣你就不需要猜測命名約定。

例如,該命令將生成控制器文件,控制器測試文件,幫助程序文件和索引視圖文件,所有這些都可供您自定義。

rails g controller foo index