Apr 08 2008

typo的title调用

Posted by admin

Tags:

在typo里每个theme的layout/default.html.erb是这样来调用标题(title)的
<%=h page_title %>
而Page_title是一个helper方法,它在content_helper方法里定义如下:

def page_title
blog_name = this_blog.blog_name || "Typo"
if @page_title
# this is where the page title prefix (string) should go
(this_blog.title_prefix == 1 ? blog_name + " : " : '') + @page_title + (this_blog.title_prefix == 2 ? " : " + blog_name : '')
else
blog_name
end
end

是不是很奇怪Article控制器里使用
layout :theme_layout, :except => [:comment_preview, :trackback]
来指定模版,但调用Article_controller时却能使用Content_controller器的辅助方法呢?
是这样的,ContentController是Article_controller父类。你细心的话可以在Article_controller顶端看到这样一行代码

class ArticlesController < ContentController

还有两种调用title的基本方法
1、 实例变量
<%= @title || 'welcome' %>
2、 Content_for方法
在helper定义

def set_html_title(str="")
unless str.blank?
content_for :html_title do
"— #{str} "
end
end
end

layout里这样调用
<% set_html_title(@article.name) -%>

Filed under : technology |

Leave a Reply