website
表上有product_lead
个attr是可选的。如果它存在,那么我想将@produc_lead.lead
转换为链接,但如果不是,则应该是纯文本。
如果我使用下面的代码且网站为零,则链接指向用户当前所在的页面。如果我使用@product_lead.try(:website)
执行此操作,它将是相同的。但正如我所提到的,在这种情况下,我希望在链接上有纯文本。
<%= link_to @product_lead.website, target: "_blank" do %>
<%= @product_lead.lead %>
<% end %>
在玩完之后我又回到了下面的解决方案,但它很可怕。有更好的想法吗?
<% if @product_lead.website %>
<%= link_to @product_lead.website, target: "_blank" do %>
<%= @product_lead.lead %>
<% end %>
<% else %>
<%= @product_lead.lead %>
<% end %>
答案 0 :(得分:2)
您可以为此创建自定义视图助手。
答案 1 :(得分:2)
好吧,无论您是否提供有效的网址,link_to
都会生成<a>
代码。因此,如果URL为零,是的,它将是您自己的页面的链接。
如果你想“隐藏”这个,你可以调用一个局部,你可以在其中放置if / else等等,但这只是在地毯下扫一遍:)
或者,如果你想进一步,作为@JovicaŠuša,视图助手是最优雅的解决方案。
答案 2 :(得分:2)
如果Rails 4
,也许link_to_if<%= link_to_if(@product_lead.website, @product_lead.lead, @product_lead.website) do %>
@product_lead.lead
<%= end %>