【问题标题】:View is being rendered without layout视图在没有布局的情况下被渲染
【发布时间】:2013-04-11 17:31:38
【问题描述】:

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

我错过了什么吗?

不应该为所有动作默认选择默认的应用布局吗?

【问题讨论】:

    标签: ruby-on-rails layout erb


    【解决方案1】:

    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
    

    【讨论】:

      【解决方案2】:

      我刚刚在阅读此question 时找到了我的问题的答案。

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

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

      【讨论】:

        猜你喜欢
        • 2018-05-14
        • 1970-01-01
        • 1970-01-01
        • 2014-01-17
        • 1970-01-01
        • 2020-02-06
        • 1970-01-01
        • 1970-01-01
        • 2011-08-11
        相关资源
        最近更新 更多