如何将 %a 标签转换为 link_to

How to convert %a tag to link_to

我有一个 Rails 应用程序,它有一个简单的通知系统。许多人都是这个项目的一部分,遗憾的是我们没有遵守标准的编码约定。在某些情况下会发生一些奇怪的问题,我发现这些问题的发生是因为它们与使用 %a 而不是 link_to 相关联。

然后我开始了将每个 %a 更改为 link_to 的旅程并且已经转换了简单的东西然后这让我感到困惑:

.dropdown{"data-behavior" => "notifications"}
  %a.dropdown-toggle.nav-link{"aria-expanded" => "false", "aria-haspopup" => "true", "data-behavior" => "notifications-link", "data-toggle" => "dropdown", :type => "button"}
    %i.fa.fa-bell
    %span{"data-behavior" => "unread-count"}
  .dropdown-menu.dropdown-menu-right{"aria-labelledby" => "dropdownMenuButton", "data-behavior" => "notification-items"}

如何将其转换为 link_to

当没有 href 时 - 您可以将 nil 传递到那里:

= link_to nil, class: 'dropdown-toggle nav-link',
  type: :button,
  aria:{ expanded: false, haspopup: true},
  data: { behavior: "notifications-link",  toggle: :dropdown} do
  %i.fa.fa-bell
  - # and so on

但对于实际上不是 link 的地方 - 将其设为 link_to

没有多大意义
= link_to nil, type: :button,
  class: 'dropdown-toggle nav-link',
  aria: { expanded: false, haspopup: true },
  data: { behavior: 'notifications-link', toggle: 'dropdown' } do

  %i.fa.fa-bell
  %span{"data-behavior" => "unread-count"}

这个代码应该没问题