【发布时间】: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 => 'test', :layout => true -
我认为从控制器渲染部分是错误的。相反,您必须创建一个视图并在视图中呈现部分
-
如何在不使用渲染的情况下将局部变量传递给局部变量。我不认为使用太多@instance 变量是一个好习惯
标签: ruby-on-rails-4 layout partials