3
A
回答
7
在Rails 5中,所有的視圖和所有控制器都可以使用所有的幫助器,除此之外別無其他。
http://api.rubyonrails.org/classes/ActionController/Helpers.html
這些幫手都可以在默認情況下所有模板。
默認情況下,每個控制器將包含所有助手。
在視圖中可以直接訪問助手:
module UserHelper
def fullname(user)
...
end
end
# app/views/items/show.html.erb
...
User: <%= fullname(@user) %>
...
在控制器你需要的#helpers
方法來訪問它們:
# app/controllers/items_controller.rb
class ItemsController
def show
...
@user_fullname = helpers.fullname(@user)
...
end
end
您仍然可以在其他類使用的輔助模塊通過include
他們。
# some/other/klass.rb
class Klass
include UserHelper
end
舊的行爲是所有的助手都包含在所有視圖中,並且每個助手都包含在匹配控制器中,例如。 UserHelper
只會包含在UserController
中。
要恢復到此行爲,您可以在config/application.rb
文件中設置config.action_controller.include_all_helpers = false
。
+0
在像Presenters/Decorators這樣的其他類中包含助手時,一個主要的問題是大多數視圖助手依賴於視圖上下文。您需要從view(self)或通過調用控制器中的'view_context'並將它作爲構造函數依賴項或參數傳遞來獲取視圖上下文。 – max
相關問題
- 1. Rails - 在哪裏放置路徑助手?
- 2. 在rails中的url助手的文檔在哪裏?
- 3. Rails助手模塊中的實例變量存儲在哪裏?
- 4. Rails - 控制器助手應該去哪裏?
- 5. rails的文檔在哪裏形成助手選項?
- 6. Django:在哪裏放置助手函數?
- 7. Backbone.js - 在哪裏定義視圖助手?
- 8. Javascript,Jquery裏面的Rails助手
- 9. Rails助手使用
- 10. 在哪裏可以找到如何發展(軌道3)助手
- 11. $ rails生成腳手架* < - 哪裏可以去這裏,我在哪裏可以找到它?
- 12. 節點/快速把手 - 在哪裏可以定義自定義的助手
- 13. 使用Rails網址助手
- 14. rails 4引擎可選共享助手
- 15. Ruby on Rails助手
- 16. Rails 3.1表助手
- 17. rails可以自定義助手使用其他助手嗎? (image_tag,radio_button_tag等?)
- 18. Rails在哪裏en.yml
- 19. 我在哪裏可以獲得帶有示例的手冊頁
- 20. 哪裏可以找到不是模型,視圖,控制器或助手的Rails代碼?
- 21. Ruby on Rails的助手 - 在助手使用實例變量
- 22. {{#each}}裏面的手柄助手
- 23. 哪裏可以找到以及如何在Laravel 5中設置視圖助手
- 24. 是否有可能在運行時加載Rails助手?
- 25. cakephp SQL幫助!哪裏?
- 26. Rails哪裏沒有找不到零值
- 27. 呈現不知道去哪裏找諧音(從助手代碼)
- 28. 我的測試助手在哪裏挑選餘燼動力?
- 29. 模型助手在React/Flux中屬於哪裏?
- 30. 這哪裏是「助手」的遊戲框架
第一個塊回答你的問題,我相信,http://api.rubyonrails.org/classes/ActionController/Helpers.html –
文檔沒有提到視圖和控制器以外的任何東西。另外,我是Ruby/Rails的新手,我不明白這隻能通過'#helpers'訪問。 –