我正在尝试为我的应用程序的每个页面制作动态标题。
我的方法: 在application.html.erb中我设置了这个:
<title><%= titles %></title>
我在ApllicationHelper.rb
上添加了这个 def titles
if request.original_fullpath == "/"
return "Find Web Designers and Developers • AwesomeWeb"
end
end
我收到以下错误:
ArgumentError in HomeController#index
invalid byte sequence in US-ASCII
我不确定这是否是一个好方法。但我想你明白我想做什么。即使这种方法对我很好。有关如何使这项工作的任何建议?
由于
答案 0 :(得分:4)
有一个更好的方法:content_for
。
在您的application.html.erb中:
<title><%= yield :title %></title>
在您的观看中(例如/users/new.html.erb)
<% content_for :title do %>
Create New User
<% end %>
无需在application_helper中对所有可能的值进行硬编码。
答案 1 :(得分:1)
问题是点符号不是ASCII符号。因此,根据Ruby版本,您可能需要指定文件application_helper
是不同的编码。
添加以下评论
# encoding: utf-8
位于文件的最顶部。
关于这种方法,我建议在视图中确定标题的内容。您可以创建一个存储标题
的简单助手def title(string = nil)
@_title = string if string
end
然后在您的视图中将其用作setter
<% title "Find Web Designers and Developers • AwesomeWeb" %>
在布局中,将其用作吸气剂
<title><%= title %></title>