视图正在呈现而没有布局

时间:2013-04-11 17:31:38

标签: ruby-on-rails layout erb

我刚刚在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

我错过了什么吗?

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我刚刚找到了解答这个问题的答案question

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

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