我可以拥有一个仅包含此内容的视图文件:
根/应用/视图/布局/ application.html.erb
<%= link_to root_url %>
当然有效。这是因为
ActionController
以某种方式包含在视图文件中。
这是如何运作的?在每个视图中我们都不会写'include ActionController',所以它是如何神奇地包含在内的?
假设我正在使用角度模板:
根/应用/资产/模板/ angularview.html.erb
<%= link_to root_url %>
除了link_to未包含在此视图中之外,一切都完美无缺:
undefined method `link_to' for #<#<Class:0x000000020417b0>:0x0000000468f2c8>
答案 0 :(得分:1)
由于您在资源目录中有了angularview模板,因此无效(正如您在问题中提到的那样: root / app / assets / templates / angularview.html.erb )。您需要在应用程序的 app / views / layouts / 目录中创建它。
有关详细信息,请参阅以下答案:
更新:但是,如果您必须这样做,那么您可以创建初始化程序并输入以下代码:
Rails.application.assets.context_class.class_eval do
include ActionView::Helpers
include MyAppHelper
include Rails.application.routes.url_helpers
end