html – rails页面标题

我不喜欢rails默认页面标题的方式(只是使用控制器名称),所以我正在开发一种新的方式,像这样:

应用控制器:

def page_title
    "Default Title Here"
end

帖子控制器:

def page_title
    "Awesome Posts"
end

应用布局:

<title><%=controller.page_title%></title>

它工作得很好,因为如果我目前使用的任何控制器中没有page_title方法,它将回到应用程序控制器中的默认值。但是,如果在我的用户控制器中,我希望它为“新”操作返回“注册”,但是退回任何其他操作?有办法吗?

其次,还有其他任何其他方式在栏目中做页面标题?

最佳答案
我不同意其他答案,我认为标题不应该按照行动设定,而是在视野内。保持视图内的视图逻辑和控制器内的控制器逻辑。

在你的application_helper.rb里添加:

def title(page_title)
  content_for(:title) { page_title }
end

然后将其插入到您的< title&gt ;::::

<title><%= content_for?(:title) ? content_for(:title) : "Default Title" %></title>

所以当您处于视图中时,您可以访问从控制器设置的所有实例变量,您可以将其设置在该位置。它也保持了控制器的混乱。

<%- title "Reading #{@post.name}" %>

转载注明原文:html – rails页面标题 - 代码日志