Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 检查轨道部分是否为空_Ruby On Rails - Fatal编程技术网

Ruby on rails 检查轨道部分是否为空

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: {...} ) %> <

我有一个负责HTML/CSS样式的主页,但有些内容来自于部分内容。分部接收一些局部变量或参数,即当前用户或个人,并显示信息(如果有)

有没有办法让我检查部分渲染是否有任何效果?我的最终目标是这样的:

<% 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那会好得多。编辑。谢谢