link_to_if如果为false,为什么会显示链接标题?

Woz*_*Poz 3 ruby-on-rails ruby-on-rails-3

如果条件为false,为什么link_to_if显示链接标题?

我在DELETE上使用它,如果条件为false,Rails会显示删除但它没有链接.如果它是假的,我不希望DELETE出现.

是否有设置或其他帮助?

谢谢

Pau*_*ell 9

如果您只想让链接完全消失,只需在link_to周围使用"if",而不是link_to_if.

<% if condition %>
  <%= link_to ... %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

如果您希望在条件不为真时显示其他内容,则可以将块传递给渲染.话虽如此,从风格的角度来看,我认为我更喜欢"if''else'到块语法 - 它更不容易混淆,至少在我看来.

阻止语法:

<%= link_to_if(condition, "Link Title", dest ) { link_to( "Alt Title", alt_dest ) } %>
Run Code Online (Sandbox Code Playgroud)

if/else语法:

<% if condition %>
  <%= link_to "Link Title", dest %>
<% else %>
  <%= link_to "Alt Title", alt_dest %>
<% end >
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅UrlHelper的文档.


Joã*_*iel 7

你可以利用块而不是使用if/else结构:

<%= link_to_if(message.user, 'Poster', message.user){} %>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,由于块是空的,如果条件为,它将不会显示任何内容.