Ruby on rails 如何在Rails 6中进行有状态引导4选项卡导航

Ruby on rails 如何在Rails 6中进行有状态引导4选项卡导航,ruby-on-rails,twitter-bootstrap,bootstrap-4,tabs,ruby-on-rails-6,Ruby On Rails,Twitter Bootstrap,Bootstrap 4,Tabs,Ruby On Rails 6,目前,我有一个Rails6应用程序,使用Bootstrap4的tab组件。选项卡组件工作顺利!但是,当刷新或向前导航,然后向后将选项卡重置为默认选项卡时,我发现这是一种糟糕的用户体验。我要说的是,将其保存在URL中(而不是cookies或localstorage)是一项要求,因为需要共享链接。请参阅图片-页面加载时,详细信息选项卡打开,然后单击联系人选项卡,刷新,然后恢复到详细信息选项卡。目标是刷新以保持“联系人”选项卡处于打开状态 问题1)如何在URL中保持选项卡的状态?最佳实践、需要考虑的

目前,我有一个Rails6应用程序,使用Bootstrap4的tab组件。选项卡组件工作顺利!但是,当刷新或向前导航,然后向后将选项卡重置为默认选项卡时,我发现这是一种糟糕的用户体验。我要说的是,将其保存在URL中(而不是cookies或localstorage)是一项要求,因为需要共享链接。请参阅图片-页面加载时,详细信息选项卡打开,然后单击联系人选项卡,刷新,然后恢复到详细信息选项卡。目标是刷新以保持“联系人”选项卡处于打开状态

问题1)如何在URL中保持选项卡的状态?最佳实践、需要考虑的事项等。 问题2)也许我想要的方法从一开始就错了。什么是好的选择?

您可以这样做:

在您看来,请执行以下操作:

<%
  tabs = %w(Details Contacts Projects Orders Batches)
  selected_tab = params[:tab] || tabs.first
%>

<ul class="nav nav-tabs">
  <% tabs.each do |tab| %>
    <%= render 'shared/tab', tab: tab, active: selected_tab == tab %>
  <% end %>
</ul>

然后是部分共享/_tab.html.erb

<li class="nav-item">
  <%= link_to title, company_path(@company, selected_tab: tab),
                     class: "nav-link#{ active ? ' active' : '' }" %>
</li>

  • 然后执行页面刷新。难道没有别的办法吗?我想可以使用Javascript修改位置历史记录,直接修改URL而无需刷新页面?我曾尝试使用tabs Javascript插件并使用pushState编辑历史记录,但无法使其可靠工作。TurboLink和以上各项提供了可靠和快速的体验。