也许我错过了一些东西,但是我发现很难在rails中显示条件属性。许多程序员使用辅助方法来实现此目的,但这似乎仍然是一项繁琐的任务。我想知道是否有人有一种优雅的方法来实现这一目标。
要清楚地说,我们有一些如下的css组件(此示例来自github开源css框架:https://primer.style/css/components/navigation),所以我将如何更改'aria-current': 'page'
属性?
<nav class="UnderlineNav UnderlineNav--right">
<div class="UnderlineNav-body">
<a class="UnderlineNav-item" href="#url" aria-current="page">Item 1</a>
<a class="UnderlineNav-item" href="#url">Item 2</a>
<a class="UnderlineNav-item" href="#url">Item 3</a>
<a class="UnderlineNav-item" href="#url">Item 4</a>
</div>
</nav>
最后,我通过以下辅助方法解决它。如果你们还有其他简单的方法,请告诉我。非常感谢。
def active_header_link(text, slug, options)
if current_page? slug
link_to text, slug, {'aria-current': 'page'}.merge(options)
else
link_to text, slug, options
end
end
然后,在必要时调用它,就这样
<%= active_header_link node.name, node_path(node.slug), class: 'UnderlineNav-item' %>