是否可以将局部渲染为布局?
目前,我在_show.html.erb
下有一个部分app/views/users
。在其他一些控制器中,我尝试包含layout 'users/show'
以将该部分用作布局。
然而,默认情况下,Rails似乎在layouts/
目录中寻找布局。我得到如下错误:
Template is missing
Missing template layouts/users/show ....
有什么建议吗?
答案 0 :(得分:0)
我认为如果您只想在另一个视图中添加部分内容,则应该使用render
:
<%= render partial: 'users/show' %>
也许在你的其他控制人的行动中:
@user = @some_object.user
您需要将@user
传递给您的部分。您可能希望在user
部分中引用局部变量users/show
并传入实例变量:
<%= render partial: 'users/show', locals: {user: @user} %>
您还可以将partial和layout选项一起使用,以便部分将在指定的布局内呈现。例如,您可以指定
<%= render partial: "contact_info", layout: "users/show" %>
这会告诉contact_info
部分在app/layouts/users/show.html.erb
中找到的布局内呈现。