只是另一個「爲什麼是這樣」的問題:我注意到私有助手方法仍然可以在視圖內訪問。爲什麼?有沒有一種方法可以防止這種情況發生(例如,當只有從另一個助手中調用的輔助方法時)?爲什麼仍然可以在視圖中訪問私有助手方法?
11
A
回答
21
幫助者是modules that get mixed in的意見。這意味着幫手中的公共,受保護和私人方法成爲公衆,保護和私人方法的意見。
我不認爲你實際上可以從視圖中隱藏輔助方法。你需要做一些事情,比如在助手中實例化一個助手類,然後將調用委託給它 - 聽起來像它可能會很快變得雜亂無章。 :)
0
助手基本上都是小的代碼片段,可以在你的意見被調用,以幫助您保持代碼的DRY - 即任何要經常重複的代碼最可能被移動到一個幫手。
使用助手很簡單,每個控制器有它自己的幫助文件,也可以編寫應用程序的輔助文件的幫手,如果將整個應用程序中使用。
例如 - 見http://paulsturgess.co.uk/articles/49-using-helper-methods-in-ruby-on-rails
+0
https://web.archive.org/web/20130127041747/http://paulsturgess.co.uk/articles/49-using-helper-methods-in-ruby-on-rails – danuker
相關問題
- 1. 爲什麼在Cocoa中仍然可以訪問卸載的類?
- 2. 訪問視圖助手方法
- 3. 私有方法可訪問
- 4. 爲什麼我可以在C++從外部訪問私有方法?
- 5. .java文件中的包私有類 - 爲什麼可以訪問?
- 6. 爲什麼可以從不同的實例訪問「私有」方法?
- 7. 爲什麼Java的反映可以訪問私有字段/方法?
- 8. 爲什麼成員函數仍然可以被訪問,即使它被聲明爲「私有」?
- 9. 在Sinatra視圖中訪問OmniAuth助手
- 10. Azure blob容器仍然可以直接訪問,即使設置爲私有後也可以訪問
- 11. 爲什麼在訪問私有方法時使用它?
- 12. 我寫了Accessors和Mutators方法,但仍然無法訪問私有變量!爲什麼?
- 13. 爲什麼我可以訪問:number_to_currency,但不是:在我的視圖中標題爲助手?
- 14. 爲什麼禁用的項目仍然可以在列表視圖中檢查
- 15. 爲什麼可以從屬性訪問私有常量字段?
- 16. 混淆爲什麼可以訪問私有變量?
- 17. 爲什麼==超載可以訪問參數的私有成員
- 18. 爲什麼序列化可以訪問私有構造函數?
- 19. 有什麼辦法可以在Python中訪問模塊的私有函數嗎?
- 20. 使javascript私有方法可以訪問它的公共方法
- 21. 私人會員爲什麼可以通過方括號表示法訪問?
- 22. Lambda可訪問私有方法
- 23. MVC:有什麼方法可以在視圖中創建包?
- 24. zend視圖助手有多種方法?
- 25. 爲什麼在compareTo中可以訪問某個類的私有成員?
- 26. 爲什麼我可以在父級php類中訪問私有財產?
- 27. 在C中訪問私有方法#
- 28. 爲什麼大家仍然在使用渲染方法構建父子視圖?
- 29. Java EE 6中的@Remote是否可以訪問私有方法?
- 30. 訪問私有方法
謝謝。就是這樣。 :-) –