我在我的模型中有一個類方法,我需要從我的一個視圖幫助器中訪問一個方法。目前我包括include TalkHelper
,但我仍然得到一個NoMethodError。Rails 3模型中的查看幫助器方法
8
A
回答
9
你可以在你的lib文件夾中放置助手並將它們包含在其中。 像這樣: LIB/some_helper.rb
module SomeHelper
def somedef
#your code there
end
end
6
如果您需要幫助的一類方法,你就需要extend
它,而不是include
它。
module TalkHelper
def woo; 'hoo' end
end
class MyClass
extend TalkHelper
def self.boo; woo end
end
MyClass.boo #=> 'hoo'
只要小心與視圖背景之外助手,幫工可能取決於controller
,或者從一個請求,該不會是你的模型可用的情況下別的東西。
41
在你的模型,你可以做類似如下:
ApplicationController.helpers.your_helper_method
OR
YourController.helpers.your_helper_method
的最好的解決辦法是重構代碼,這樣你就不需要根據模型調用視圖幫助程序代碼。這不是RoR的方式。正如其他人指出的那樣,您可以將幫助程序代碼提取到lib文件夾。
更多信息請參閱本:
+0
我最終遵循了你的建議並對我的代碼進行了重構,這樣我就不必在模型中使用helper方法。 – LanguagesNamedAfterCofee
相關問題
- 1. 幫助與自引用模型和在Rails中查看3
- 2. Rails幫助查找方法
- 3. Rails 5 - 幫助器方法
- 4. Rails中的模型的輔助方法
- 5. Rails 3中的Dropbox幫助
- 6. 從Rails 3控制器調用幫助器方法
- 7. Rails 3 collection_select HABTM關係的幫助器方法
- 8. Rails幫助模塊undefined方法`排序'
- 9. 幫助報告查看器
- 10. Tkinter幫助查看器
- 11. Rails 3 Routes幫助
- 12. 幫助Rails 3 js
- 13. Rails - 模型中可用的控制器中的輔助方法?
- 14. Visual Studio 2010中的幫助查看器
- 15. Rails幫助器方法錯誤content_tag
- 16. 可用於查看,控制器和模型的Rails 3類
- 17. 幫助在Rails中命名模型
- 18. 幫助在Rails中建立模型
- 19. Ruby/Rails方法幫助
- 20. Rails 3 - 幫助評論模塊
- 21. Rails heroku幫助kaminari查看錯誤
- 22. 需要幫助的強類型查看
- 23. 如何更改查看幫助器方法?
- 24. 如何從控制器中的Rails 3調用模型方法?
- 25. 在rails中訪問模型的視圖幫助器
- 26. SQL查看幫助
- 27. Android查看幫助
- 28. Rails 3添加ActiveRecord模型方法
- 29. Rails 3,看不到我的「模型」_path
- 30. RESTful路線幫助Rails 3
應該是'module'(小寫)? –
當然。固定! (15個符號) – railscard