Переключаемая боковая панель Ruby-on-Rails для редактирования определенного элемента списка

#css #ruby #twitter-bootstrap-3 #sidebar #ruby-on-rails-5

#css #ruby #twitter-bootstrap-3 #боковая панель #ruby-on-rails-5

Вопрос:

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

Во-первых, я бы сделал это с модальной или фактической боковой панелью? Как динамически изменять содержимое в соответствии с параметрами, должно ли оно содержать частичное?

Я немного заблудился на пути к этому, если кто-нибудь когда-либо делал что-то подобное или мог мне помочь, я был бы очень признателен.

Ответ №1:

Вы можете создать часть, содержащую обычный form_for элемент, с правильными текстовыми полями, сообщениями об ошибках и так далее. Но в действии index контроллера для этой страницы (я предполагаю, что это что-то вроде cards_controller#index ) вам нужно будет настроить переменную экземпляра с пустой моделью для form_for использования.

Затем вам нужно решить, как будет отправлена карточка. Если вы согласны с перезагрузкой страницы, она может быть отправлена в действия cards_controller#create или cards_controller#update … но в случае успеха эти действия нужно будет перенаправить обратно в index представление. Это может быть проще с помощью AJAX-запроса. Форма будет отправлена обратно в те же действия, но с использованием respond_to блока. Если запрос имеет тип json, отправьте правильный код состояния и соответствующим образом ответьте на странице.

Удачи!

Комментарии:

1. Я уже использую это для создания карточки. Я получил ввод над моей таблицей, и если вы отправите в него текст, он перезагрузит список карточек, который является частичным. Для этого, как вы сказали, мне нужно было создать новый пустой экземпляр card для работы в контроллере индекса. Моя главная проблема с редактированием — это дизайн, который он должен иметь, боковая панель. Единственный известный мне способ правильно реализовать боковую панель — это поместить ее в макет, чтобы она создавалась перед содержимым самой страницы и хорошо взаимодействовала с ней, отзывчиво.

2. Проблема в том, что я не хочу, чтобы макет обновлялся каждый раз, тогда как мне нужно изменить переменные на боковой панели, и они даже будут пустыми в начале, поэтому я должен поместить if вокруг этой боковой панели в макете, чтобы я не получал ошибку. Я думаю, это в основном проблема дизайна, она заключается в добавлении боковой панели к макету действия и передаче ее параметров. Я думаю, что я бы отрисовал часть внутри боковой панели, но все же я должен указать ей параметры, чтобы передать их как локальные. Я не знаю, ясно ли я здесь?