Rails bootstrap navigation link_to ошибка

Я хочу сделать навигационную панель в рельсах в соответствии с этим примером: http://getbootstrap.com/javascript/#tabs< /а>

<div role="tabpanel">



<!-- Nav tabs -->
  <ul class="nav nav-tabs" role="tablist">
    <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
    <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
    <li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
    <li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
  </ul>

  <!-- Tab panes -->
  <div class="tab-content">
    <div role="tabpanel" class="tab-pane active" id="home">...</div>
    <div role="tabpanel" class="tab-pane" id="profile">...</div>
    <div role="tabpanel" class="tab-pane" id="messages">...</div>
    <div role="tabpanel" class="tab-pane" id="settings">...</div>
  </div>

</div>

Однако я хочу использовать метод link_to для создания ссылки. Когда я переписываю первую ссылку следующим образом, проблем не возникает:

    <li role="presentation" class="active"><%= link_to "Home", "#home", 'aria-controls'=>"home", role: "tab", data:{toggle: "tab"} %> </li>

Однако, когда я пишу эту строку следующим образом:

    <li role="presentation" class="active"><%= link_to "Home", root_path, 'aria-controls'=>"home", role: "tab", data:{toggle: "tab"} %> </li>

Вкладка «Главная» больше не работает, и я получаю следующую ошибку в Google Chrome: Uncaught Error: Syntax error, нераспознанное выражение: /

Любая идея, что я делаю неправильно?


person barney_bbq    schedule 19.03.2015    source источник
comment
Я предполагаю, что JavaScript Bootstrap использует поиск специально для этой ссылки #home. <a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a> на самом деле не является ссылкой, она просто запускает функцию JavaScript, поэтому я не думаю, что вам следует заменять ее вспомогательным методом link_to.   -  person hattenn    schedule 19.03.2015


Ответы (1)


Я решил эту проблему, используя вспомогательный гем начальной загрузки: http://fullscreen.github.io/bh/# или перейдите на страницу https://rubygems.org/gems/bh, чтобы просмотреть все версии .

После добавления драгоценного камня и выполнения примера кода:

<%= nav do %>
  <%= link_to 'Home', root_path %>
  <%= link_to 'Users', users_path %>
  <%= link_to 'Profile', profile_path %>
<% end %>

Ссылки теперь у меня работают, включая установку class="active" для правильной ссылки, что для меня было самым важным. Гем bh также очень полезен для установки class="active" в обычной навигационной панели начальной загрузки. Совет: у меня были проблемы с макетом в версии 1.3.3, поэтому я перешел на версию 1.3.1, которая работает хорошо.

person barney_bbq    schedule 08.04.2015