我收到以下错误:
undefined method `full_title'
在这一行:
<title><%= full_title(yield(:title)) %></title>
在我的布局文件上:
<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag "application", media: "all",
"data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
</head>
<body>
<%= render 'layouts/header' %>
<div class="container">
<%= yield %>
<%= render 'layouts/footer' %>
</div>
</body>
</html>
我正在尝试使用页面标题执行类似于 Mike Hartle Rails 教程的操作,但我不使用测试。所以我没有在spec文件夹中创建支持文件。我实际上没有spec文件夹。我相信没有包含此代码的支持文件:
def full_title(page_title)
base_title = "Ruby on Rails Tutorial Sample App"
if page_title.empty?
base_title
else
"#{base_title} | #{page_title}"
end
end
正在导致错误。解决此问题的正确方法是什么是您不想创建测试,因此不需要规范文件夹?我可以把这段代码放在哪里?
任何可以直接访问视图的方法都必须转到帮助器。
由于您正在尝试在布局中访问此方法,因此请将代码放在application_helper.rb
file.
所有助手都只是模块。
如果您没有该文件,请在以下位置创建一个app/helpers
module ApplicationHelper
def full_title(page_title)
base_title = "Ruby on Rails Tutorial Sample App"
if page_title.empty?
base_title
else
"#{base_title} | #{page_title}"
end
end
end
Then, include ApplicationHelper
在application_controller.rb中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)