如何使用带有引导徽章的 rails link_to

Zac*_*ack 0 ruby-on-rails button twitter-bootstrap

我目前有一个由链接组成的导航栏,如下所示。

导航栏:

<li>
  <%= link_to "Messages (#{@user.messages.count})", "#messages", "data-toggle" => :tab %>
</li>
<li>
  <%= link_to "Notes (#{@user.notes.count})", "#notes", "data-toggle" => :tab %></li>
</li>
Run Code Online (Sandbox Code Playgroud)

我真正想做的是使这些链接按钮具有嵌入式徽章,显示类似于下面的计数。我就是不知道如何用 Rails 做到这一点。

<button class="btn btn-primary" type="button">
  Messages <span class="badge">4</span>
</button>
Run Code Online (Sandbox Code Playgroud)

kjm*_*c13 5

您可以使用link_to 块方法

<%= link_to '#messages', class: 'btn btn-primary', data: {toggle: :tab} do %>
    Messages <%= content_tag :span, @user.messages.count, class: 'badge' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

或者,如果您设置为使用单行,则可以使用这样的助手:

def text_with_badge(text, badge_value=nil)
    badge = content_tag :span, badge_value, class: 'badge'
    text = raw "#{text} #{badge}" if badge_value
    return text
end
Run Code Online (Sandbox Code Playgroud)

然后调用:

<%= link_to text_with_badge('Messages', @user.messages.count), '#messages', class: 'btn btn-primary', data: {toggle: :tab} %>
Run Code Online (Sandbox Code Playgroud)

或者加倍努力创建自己的link_to_with_badge帮手。