2013-04-11 83 views
0

我刚在Windows上创建了一个新的项目,Rails 3.2.11,并且默认情况下我的视图没有布局。查看渲染时没有布局

我有一个控制器如下:

class DashboardsController < ApplicationController 
    def initialize 
    @ini=Date.new(2013,01,01) 
    @end=Date.new(2013,12,31) 

    def show 
    end 
end 

我的观点show.html.erb正在没有布局呈现,即使我强迫layout :application控制器不工作的。

我设法解决这种行为的唯一方法是显式告诉show方法来渲染布局。

def show 
    render :layout => 'application' 
end 

我错过了什么吗?

默认情况下不应该为所有操作选择默认应用程序布局吗?

回答

0

我刚刚发现我的问题的答案,读这个question

问题出在我的控制器中,我正在覆盖初始化方法,但忘记调用super。

我用完整的代码更新了我的问题以供参考。

0

layout需要一个字符串。

class DashboardsController < ApplicationController 
    layout "application" 

    def show 
    end 
end 

一个符号调用应该返回模板名称(作为字符串)的指定方法。

class DashboardsController < ApplicationController 
    layout :grab_bag 

    def show 
    end 

    def grab_bag 
    ["red", "white", "blue"].sample 
    end 
end