Якорь во время itering - Рельсы - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь сделать привязку на странице индекса при переходе по списку элементов. На главной странице я отображаю каждый элемент с кнопкой «больше информации». При нажатии он попадает в указатель подробных элементов. Я попробовал код ниже, но он не работает.

link_to 'More info', tours_path(@tour, :anchor => "#{tour.name}"

Я также попытался, но безуспешно:

link_to 'More info', tours_path(@tour, :anchor => tour.name

Вот код дома. html .erb :

<section id="walking-tours">
  <h2 class="text-center">Lisbon walking tours </h2>
      <div class="walking-tours d-flex">
        <% @tours.each do |tour| %>
          <div class="walking-tours-cards item">
            <% photo = tour.photos[0] %>
             <%= cl_image_tag photo.key, height: 300, width: 300, crop: :fill if tour.photos.attached? %>
                <h3> <%= tour.name  %> </h3>
                <p> <%= tour.description %> </p>
                 <%= link_to 'More info', tours_path(@tour, :anchor => "#{tour.name}"), class: 'btn btn-outline-secondary' %>
          </div>
        <% end %>
      </div>
</section>

и код в индексе. html .erb

<div class="index-tours">
  <div class="tours-title">
    <h1 >WALKING TOURS</h1>
  </div>

     <div class="tours-list">
        <% @tours.each do |tour| %>
         <div class="walking-tours-details ">

          <div class="walking-tours-info">
            <h3> <%= tour.name  %> </h3>
            <p> <%= tour.full_information %> </p>
            <p><b>Duration</b> -<%= tour.duration %> </p>
            <p><b>Meeting Point</b> - <%= tour.meeting_point %> </p>
          </div>
          <div class="tours-pics">
            <% tour.photos.each do |photo| %>
             <%= cl_image_tag photo.key, height: 220, width: 220, crop: :fill, :class => "tours-img" %>
            <% end %>
          </div>

          </div>
            <% if logged_in? %>
              <%= link_to 'Edit', edit_tour_path(tour), :class => "tours-links" %> <%= link_to 'Destroy', tour, method: :delete, data: { confirm: 'Are you sure?' } %>
            <% end %>
        <% end %>
    </div>

На данный момент все кнопки «Подробнее» go к первому элементу списка ( в верхней части страницы индекса). Есть идеи, чтобы помочь? Спасибо!! Сесиль

1 Ответ

0 голосов
/ 10 апреля 2020

Я нашел решение, сгенерировав динамический c ID:

  <% tour_link = tour.name %>
  <% tour_identification = tour_link.gsub(/\s+/, '') %>
  <div id= <%= tour_identification %> > 

и для link_to:

<%= link_to 'More info', tours_path(tour, anchor: tour_identification) %>

Но я все еще задаюсь вопросом, может ли якорь работать без Я БЫ.

...