仅使用rails在特定HAML页面上包含名称空间声明

时间:2011-02-01 21:19:26

标签: ruby-on-rails namespaces haml

我有一个使用HAML(v3.0.25)的Rails应用程序(v2.3.8)。我的application.html.haml目前在顶部声明了以下facebook命名空间,特别是子页面中的FBLike:

!!! 5
%html{:lang => 'en', 'xmlns:og' => 'http://ogp.me/ns#', 'xmlns:fb' => 'http://www.facebook.com/2008/fbml' }
  %head
    ...

是否可以从application.html.haml&中删除facebook声明?只在我的childpage.html.haml中声明它,FBLike&元标签是?我还想保留:lang => 'en'目前在哪里;我不想在所有页面中再次声明它。

1 个答案:

答案 0 :(得分:1)

您始终可以为具有此命名空间标题的FBML页面创建不同的布局。也可以创建一个名为html_tag_attributes的视图助手,并改为使用它:

%html{ html_tag_attributes }

你大致定义了这个:

DEFAULT_HTML_ATTRIBUTES = { :lang => 'en', 'xmlns:og' => 'http://ogp.me/ns#' }
DEFAULT_FBML_ATTRIBUTES = DEFAULT_HTML_ATTRIBUTES.merge('xmlns:fb' => 'http://www.facebook.com/2008/fbml')

def html_tag_attributes
  @use_fbml ? DEFAULT_FBML_ATTRIBUTES : DEFAULT_HTML_ATTRIBUTES
end

您可以自定义此操作以获得所需的行为,而不是简单的实例变量test。