我一直在使用Rails创建我的第一个网站几个星期,不断获取新的信息,每天都爱它。这个网站对我帮助很大,谢谢。
在尝试设置我的META标签时遇到了一个场景,普遍使用一个(全局)功能,试图让它干嘛!
以下是好的还是坏的做法?我是否忽视了一些我本可以做的事情?
现在,以下是一个梦想,对我来说似乎很合乎逻辑,但这是不好的做法吗?
在application_controller.rb中:
def make_meta_title name
title = name
if [params[:page]]
title << " page " + params[:page]
end
title << " | My Site Name"
end
在我的products_controller.rb :
def show
...
@meta_title = make_meta_title(@products.name)
end
然后在我看来
<title><%= @meta_title %></title>
输出
Blue widget | My Site Name
或
Blue widget page 2 | My Site Name
P.S。请不要评论我的语法,这是来自记忆,因为我现在正在另一台计算机上,但它是这样的!
答案 0 :(得分:4)
application_controller.rb应包含与应用程序中所有其他控制器共享的内容...有几个典型的用例(如某些共享过滤器 - 例如身份验证)
现在在这种特定情况下,你可以使用控制器中的一些东西和辅助方法的组合。控制器将存储您要添加到页面的META,帮助程序将为这些生成标记...然后您将在layouts / application.html.erb(或您使用的任何模板引擎)中添加该标记。 ..
答案 1 :(得分:1)
IMO将文字文本" page "
和" | My Site Name"
放在您呈现数据的方式中,因此应该成为视图的一部分。如果您网站的每个页面都遵循此方案,我会将其移至您的全局布局页面。
另一方面,如果您有时在不使用@meta_title
的情况下创建make_meta_title
,那么您所做的事情对我来说似乎是合理的。