【问题标题】:Rails Application Layout not included不包括 Rails 应用程序布局
【发布时间】:2015-02-09 23:10:34
【问题描述】:
class UserController < ApplicationController

  def test
    render :partial => 'test'
  end

end

上面的代码在 _test.erb 部分中没有包含默认的应用布局

但是如果我使用

class UserController < ApplicationController

  def test
  end

end

部分 test.erb 使用默认的 application.html 布局加载

如果我使用

render :partial => 'test', :layout => 'application'

我收到一个错误,因为 rails 搜索 _application.html 而默认布局是 application.html

使用我在控制器中包含布局“应用程序”的以下代码片段也不会加载 application.html 布局。

class UserController < ApplicationController

  layout 'application'

  def test
    render :partial => 'test'
  end

end

是我做错了什么,还是 Rails 在我们渲染部分时没有将应用程序布局作为默认布局。

【问题讨论】:

  • 为什么要从控制器渲染部分?
  • 我想将一些本地人传递给我的部分类似渲染:partial => 'test', locals: { user: user }
  • 我不确定,但你有没有这样尝试过:render :partial =&gt; 'test', :layout =&gt; true
  • 我认为从控制器渲染部分是错误的。相反,您必须创建一个视图并在视图中呈现部分
  • 如何在不使用渲染的情况下将局部变量传递给局部变量。我不认为使用太多@instance 变量是一个好习惯

标签: ruby-on-rails-4 layout partials


【解决方案1】:

最好从视图中渲染局部。

<%= render "path/to/partial", :variable => @variable %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 2013-03-15
    • 1970-01-01
    相关资源
    最近更新 更多