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

我错过了什么吗?

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

4

2 回答 2

0

我刚刚找到了阅读这个问题的问题的答案。

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

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

于 2013-04-11T18:25:23.990 回答
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
于 2013-04-11T17:38:15.887 回答