我只想在满足以下条件时呈现链接link_to_if:
<%= link_to_if policy(@user.add?), new_entry_path(), class: 'btn' do %>
<%= glyphicon("plus") %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
带有glypicon("plus")辅助方法的块也应该只在满足 的条件时才被调用link_to_if。上面的代码块总是被调用,无论条件是真还是假。
仅当条件返回 true 时,如何创建链接及其内部内容?
只需使用一个简单的if和一个link_to:
<% if policy(@user.add?) %>
<%= link_to new_entry_path, class: 'btn' do %>
<%= glyphicon('plus') %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
或者你可能想考虑一个像这样的视图助手方法:
def link_to_add(url)
link_to(glyphicon('plus'), url, class: 'btn')
end
Run Code Online (Sandbox Code Playgroud)
可用于查看以下内容:
<%= link_to_add(new_entry_path) if policy(@user.add?) %>
Run Code Online (Sandbox Code Playgroud)
或更通用:
def icon_link(icon, url)
link_to(glyphicon(icon), url, class: 'btn')
end
Run Code Online (Sandbox Code Playgroud)
可用于查看以下内容:
<%= icon_link('plus', new_entry_path) if policy(@user.add?) %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |