我有一个负责HTML / CSS样式的主页面,但有些内容来自partials。部分接收一些本地或参数,即current_user或person,并显示信息(如果有的话)。
我有办法检查部分渲染是否有任何东西?我的最终目标是这样的:
<% if my_partial can render something %>
<div class="css_for_something">
<%= render(partial: 'my_partial', locals: {...} ) %>
<% else %>
<div class="css_for_no_info">
<%= render something else %>
<% end %>
我不希望局部处理样式逻辑;他们只需要显示内容(如果有的话)。相反,主页面不应该知道部分逻辑,例如检查值或查询数据库。
谢谢
答案 0 :(得分:2)
不幸的是,Chris Peter的解决方案在rails 4.2.4上不起作用,因为render_to_string
似乎在视图中不可用。
然而,以下工作(rails 4.2.4):
<% partial_content = render partial: 'my_partial' %>
<% if partial_content.present? %>
<%= partial_content %>
<% else %>
<%# rendered if partial is empty %>
<% end %>
请注意present?
检查确实只检查呈现的内容是否为空。如果,某事,例如返回HTML注释,检查返回false。