Заполнение модов динамическими идентификаторами в Rails - неопределенная локальная переменная - PullRequest
1 голос
/ 02 мая 2019

Итак ... Я пытаюсь понять использование модалов в Rails и ищу несколько указателей.

У меня есть список предметов на category/1, которые отображаются в цикле. У меня есть модал, который я рендерил внизу страницы с <%= render "category/update_item_modal" %>

Уже есть настройка формы для обновления параметров каждого элемента, но я пытаюсь получить модальное всплывающее окно, чтобы просто обновить название. Модальное всплывающее окно работает, и до сих пор у меня есть следующая кнопка для открытия модального окна: -

<a href="#" data-toggle="modal" data-target="#updateItemModal-<%= title.id %>"><button class="btn btn-primary btn-sm">Edit Title</button></a>

И сам модал: -

<div class="modal fade" id="updateItemModal-<%= item.id %>" tabindex="-1" role="dialog" aria-labelledby="updateItemModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="updateItemModalLabel">Change Item</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <!-- UPDATE TITLE HERE? -->
      </div>
    </div>
  </div>
</div>

Это дает мне ошибку undefined local variable "id" из модального идентификатора по очевидным причинам, и это - то, где мое понимание поражает стену. Как передать данные из итерации цикла в мой модальный режим?

Конечная цель - иметь редактируемое поле текстовой области с существующим заголовком и кнопку отправки, которая будет публиковать изменения.

1 Ответ

1 голос
/ 02 мая 2019

Если вы определили @item в вашем контроллере:

<%= render "category/update_item_modal", locals: item: @item %>

Тогда у вас есть доступ к item в вашей части.Еще одна вещь, которую вы можете сделать, чтобы избежать этой ошибки, это использовать оператор безопасной операции item&.id.Подробнее об операторе безопасной навигации здесь: https://bugs.ruby -lang.org / Issues / 11537

...