Ruby on rails 检查轨道部分是否为空
我有一个负责HTML/CSS样式的主页,但有些内容来自于部分内容。分部接收一些局部变量或参数,即当前用户或个人,并显示信息(如果有) 有没有办法让我检查部分渲染是否有任何效果?我的最终目标是这样的:Ruby on rails 检查轨道部分是否为空,ruby-on-rails,Ruby On Rails,我有一个负责HTML/CSS样式的主页,但有些内容来自于部分内容。分部接收一些局部变量或参数,即当前用户或个人,并显示信息(如果有) 有没有办法让我检查部分渲染是否有任何效果?我的最终目标是这样的: <% if my_partial can render something %> <div class="css_for_something"> <%= render(partial: 'my_partial', locals: {...} ) %> <
<% 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 %>
我不想让partials处理样式逻辑;他们只需要显示内容(如果有的话)。相反,主页面不应该知道部分中的任何逻辑,例如检查值或查询数据库
谢谢尝试将
render\u to\u string
生成的值存储在变量中:
<% partial_content = render_to_string(partial: 'my_partial', locals: {...} ).strip %>
然后您可以查看它是否包含任何内容:
<% if partial_content.present? %>
<%= partial_content %>
<% else %>
<div class="css_for_no_info">
<%= render something else %>
</div>
<% end %>
尝试将
render\u to\u string
生成的值存储在变量中:
<% partial_content = render_to_string(partial: 'my_partial', locals: {...} ).strip %>
然后您可以查看它是否包含任何内容:
<% if partial_content.present? %>
<%= partial_content %>
<% else %>
<div class="css_for_no_info">
<%= render something else %>
</div>
<% end %>
不幸的是,Chris Peter的解决方案在rails 4.2.4上对我不起作用,因为
render_to_string
似乎在视图中不可用
但是,以下各项有效(rails 4.2.4):
请注意,
present?
检查实际上只检查渲染的内容是否为空。如果返回了某个内容,例如HTML注释,则检查将返回false。不幸的是,Chris Peter的解决方案在rails 4.2.4上对我不起作用,因为视图中似乎没有可用的render_to_string
但是,以下各项有效(rails 4.2.4):
请注意,
present?
检查实际上只检查渲染的内容是否为空。如果返回某个内容,例如HTML注释,则检查将返回false。@RyanBigg这会更好。编辑。谢谢@RyanBigg那会好得多。编辑。谢谢