为特定页面呈现特定标头

时间:2014-01-19 05:20:41

标签: ruby-on-rails ruby ruby-on-rails-3

我是RoR的新手,并使用布局/部分/渲染,所有这些好东西,制作应用程序。在我的应用程序的开头,我以为我会对整个应用程序使用相同的标题,因此写道:

render 'layouts/header'

在我的application.html.erb文件中。现在,我意识到对于某些页面(即注册页面和博客),我想使用名为simple_header的简化页眉。我是否写了类似

的内容
<%= if @simple_header
        render 'layouts/simple_header'
    else 
        render 'layouts/header' 
%>

然后测试@simple_header是否为真或控制器中的某些内容,或者是否有更好的方法来执行此操作。感谢。

2 个答案:

答案 0 :(得分:3)

在rails中,您可以创建不同的布局,并选择用于特定操作或控制器的布局。

观看此railscast http://railscasts.com/episodes/7-all-about-layouts

这应该可以帮助您解决问题。

例如。,

app/views/layouts中创建一个新布局,比如simple_header.html.erb,然后在控制器中告诉它使用该布局。

class BlogController < ApplicationController
 layout :simple_header

 def index
 end

end

答案 1 :(得分:1)

另外(如果你有简单的逻辑)考虑使用

  

CURRENT_PAGE?

像这样的方法:

<% if current_page?(controller: 'sites', action: 'index') %>
...
<% else %>
...
<% end%>