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 - 控制器助手应该去哪里?
- 3. rails的文档在哪里形成助手选项?
- 4. Backbone.js - 在哪里定义视图助手?
- 5. Django:在哪里放置助手函数?
- 6. Javascript,Jquery里面的Rails助手
- 7. Rails助手使用
- 8. 在哪里可以找到如何发展(轨道3)助手
- 9. $ rails生成脚手架* < - 哪里可以去这里,我在哪里可以找到它?
- 10. 节点/快速把手 - 在哪里可以定义自定义的助手
- 11. 使用Rails网址助手
- 12. Rails在哪里en.yml
- 13. 我在哪里可以获得带有示例的手册页
- 14. 哪里可以找到不是模型,视图,控制器或助手的Rails代码?
- 15. Ruby on Rails的助手 - 在助手使用实例变量
- 16. 是否有可能在运行时加载Rails助手?
- 17. 哪里可以找到以及如何在Laravel 5中设置视图助手
- 18. cakephp SQL帮助!哪里?
- 19. 这哪里是“助手”的游戏框架
- 20. Java语言转换助手(JLCA)3.0在哪里?
- 21. 我的测试助手在哪里挑选余烬动力?
- 22. 呈现不知道去哪里找谐音(从助手代码)
- 23. 我从哪里入手rJava?
- 24. 从哪里入手Xen?
- 25. 哪里可以在Rails应用中使用Bit.ly API调用
- 26. Rails表单助手失败
- 27. 一类在Rails助手
- 28. Rails引擎中的助手
- 29. Ruby on Rails的助手HTML5
- 30. Rails的网址助手PARAMS
第一个块回答你的问题,我相信,http://api.rubyonrails.org/classes/ActionController/Helpers.html –
文档没有提到视图和控制器以外的任何东西。另外,我是Ruby/Rails的新手,我不明白这只能通过'#helpers'访问。 –