我有一个用户控制器,具有index
,show
,edit
和destroy
方法。在我的layouts /文件夹中,我有一个通用的user.html.erb布局,用于呈现某些局部。由于某些信息不可用,例如@user.name
,这些部分内容当然会产生错误。我一直尝试在处于def show
状态时始终渲染该局部图像,例如:
<% if Users.show %>
<% render "shared/asides/users" %>
<% else %>
Other partials
<% end %>
我尝试了几种方法,但总是会出错。即使我试图在Rails文档中找到此内容,我也感到完全迷失了。
[您的问题是,正如您所说的,您正在尝试显示与用户关联的内容,例如@ user.name,但没有@user。
所以为什么在显示部分内容之前不检查@user?或者,如果您有一组用户,我猜是@users吗?
<% if @users %>
<%= render "shared/asides/users" %>
<% else %>
<%= Do something else %>
<% end %>
也许有点整洁:
<%= render (@users ? path/to/partial_a.html.erb : path/to/partial_b.html.erb) %>