如果条件为false,为什么link_to_if会显示链接标题?
我在DELETE上使用它,如果条件为false,Rails会显示删除但它没有链接。如果它是假的,我不希望DELETE出现。
是否有设置或其他帮助?
谢谢
答案 0 :(得分:9)
如果你只想让链接完全消失,只需在link_to周围使用'if',而不是link_to_if。
<% if condition %>
<%= link_to ... %>
<% end %>
如果您希望在条件不为真时显示 else ,则可以将块传递给渲染。话虽如此,从风格的角度来看,我认为我更喜欢“if''else'到块语法 - 它不那么令人困惑,至少在我看来。
阻止语法:
<%= link_to_if(condition, "Link Title", dest ) { link_to( "Alt Title", alt_dest ) } %>
if / else语法:
<% if condition %>
<%= link_to "Link Title", dest %>
<% else %>
<%= link_to "Alt Title", alt_dest %>
<% end >
有关详细信息,请参阅UrlHelper的文档。
答案 1 :(得分:6)
您可以利用该块而不是使用if / else结构:
<%= link_to_if(message.user, 'Poster', message.user){} %>
在这种情况下,由于该块为空,如果条件为 false ,它将不会显示任何内容。
答案 2 :(得分:0)
更多信息-
link_to_if
的完整语法是-
link_to_if(condition, name, options = {}, html_options = {}, &block)
如果您查看源代码,则会发现如果条件为false,它将尝试执行给定的块;如果未给出块,则将仅返回name
。 / p>
避免显示名称的技巧是只指定一个空块,如@JoaoDaniel-
所述<%= link_to_if(message.user, 'Poster', message.user, class: 'htmlClass') {} %>