Вопрос

Я построил новый портал на Rails, к которому можно получить доступ, скажем: https://xyz.com

Проблема с этим заключается в:1.) В нем есть 2 вкладки – “ShipmentInfo”, “Панель мониторинга устаревших отправлений”, обе реализованы с использованием

<li> tags and YUI library’s tabview.
    <ul class="yui-nav">
        <li id="tab1" class="selected"><a href="#tab1">Shipment Info</a></li>
        <li id="tab2"><a href="#tab2">Aging Shipments Dashboard</a></li>
    </ul>

2.) Когда я нажимаю на вкладку “Панель мониторинга устаревших отправлений”, URL–адрес должен быть – https://xyz.com/#tab2 но вы можете видеть только https://xyz.com .Я предполагаю, что это из-за реализации вкладок на стороне клиента.

3.) После того, как я нажимаю на кнопку “Текущая сводка” на этой вкладке, я получаю соответствующие результаты, но вместо того, чтобы показывать мне активную вкладку, установленную на “Панель мониторинга устаревших отправлений”, она всегда установлена на вкладку “ShipmentInfo”.

Как я могу настроить activeTab на получение результатов на соответствующую вкладку, с которой был размещен запрос?Все запросы формы используют метод GET.

Или есть способ, которым я могу явно указать в routes.rb, основываясь на параметрах, что activeTab должен быть установлен в “Панель мониторинга устаревших отправлений”?

Спасибо, Раджа.

Это было полезно?

Решение

ДА.Вероятно, у вас уже есть эти строки в конце вашего файла routes.rb:

map.connect ':контроллер/: действие/: идентификатор' map.connect ': контроллер /: действие /: идентификатор.:формат'

Измените их на:

map.connect '#: контроллер' map.connect ': контроллер /: действие/: идентификатор' map.connect ': контроллер /: действие/: идентификатор.:формат'

Таким образом, вы можете определить две переменные как разные контроллеры в приложении rails.Вероятно, вы могли бы сделать то же самое, что и два действия, но это ваше дело.

Другие советы

Насколько я могу судить, что бы ни делал YUI, чтобы преобразовать это ul в набор вкладок, вероятно, не имеет ничего общего с hrefы внутри li.Я думаю, вам следует проверить синтаксис использования для создания ваших вкладок.

Двигаясь дальше, href ссылки указывают только на якоря внутри текущей страницы.Это означает, что клиенту (браузеру) не нужно отправлять HTTP-запрос для повторного получения текущей страницы.Я не думаю, что современные браузеры когда - либо делай.Я сомневаюсь, что они отправляют якорную часть URL-адреса (часть после #) поскольку HTTP-сервер не заботится об этой информации.

Это означает, что ваше приложение rails никогда не получает уведомления о том, когда пользователь нажимает на вкладку, и никогда не получает часть URL после #.Таким образом, вы не можете поместить какие-либо правила по этому поводу в таблицу маршрутизации.

Редактировать:Я забыл сказать тебе, что на самом деле должно произойти.

  1. YUI (или какой-либо другой код javascript) должен прикрепляться к onClick li, который выглядит как вкладка, судя по вашему описанию.
  2. Когда пользователь нажимает на вкладку, он считывает URL-адрес и каким-то образом угадывает, какой контент-тег отображать в качестве содержимого вкладки.Например, это может быть div который содержит содержимое 2-й вкладки, и он мог бы иметь id из tab2 или что-то в этомроде.
  3. Затем это делает содержимое текущей вкладки невидимым.Обычно это делается с помощью CSS display свойство, устанавливающее его в display: none.
  4. Наконец, содержимое вкладки, на которую был сделан клик, становится видимым.Что было бы сделано с использованием display: block или что-то похожее.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top