Rails根据条件在HTML代码上包装link_to

时间:2018-10-12 14:37:23

标签: html ruby-on-rails ruby link-to

是否存在基于条件将干净的link_to包装在html代码上的语法?因为DRY,所以我不想重复相同的代码。

<% if condition? %>
  <%= link_to bla_bla_path do %>
    <p>Some html here</p>
  <% end %>
<% else %>
  <p>Some html here</p>
<% end %>

我知道有link_to_if,但其中没有else部分:((((

1 个答案:

答案 0 :(得分:0)

对于link_to_if,要传递的块实际上是else。仔细查看链接到的文档。

无论如何,使用link_to_if也不会解决您的干燥问题。您要使用capture将常见的html分配给变量:

<% content = capture do %>
  <p>Some html here</p>
<% end %>

<% if condition? %>
  <%= link_to bla_bla_path do %>
    <%= content %>
  <% end %>
<% else %>
  <%= content %>
<% end %>