Создание и редактирование моего элемента вместо использования `new` - PullRequest
1 голос
/ 02 декабря 2009

Итак, в основном мое действие 'index' - это длинный список элементов, выводимых в виде таблицы с Rails, каждый из которых имеет флажок рядом с ним. Эти элементы - это элементы в каталоге, которые будут позициями в цитате.

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

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

Кроме того, у пользователя нет возможности вернуться на эту страницу, чтобы «добавить» больше элементов в цитату.

Моей первой мыслью было создание нового элемента прямо при переходе на эту «индексную страницу и, по сути, чтобы пользователь редактировал цитату с самого начала»

Есть идеи по этой реализации? Я немного застрял на том, как начать реализацию этого.

Ответы [ 2 ]

1 голос
/ 02 декабря 2009

Этот вопрос похож на ваш и охватывает вашу первую проблему. Разбивка.

В дополнение к этому, умное использование accepts_nested_attributes_for в модели соединения позволит вам упростить добавление элементов в существующие или новые кавычки.

Извините, у меня сейчас нет кода для вас, но вот общая идея:

Создает список QuoteItems, который представляет собой объединение набора существующих элементов цитаты для этой цитаты, и цитирует элементы, построенные для текущей цитаты, из элементов, не являющихся частью текущей цитаты.

Передайте этот список fields_for и настройте каждый field_for регион так, чтобы он передавал item_id как скрытое значение и содержал флажки, чтобы они изменяли поле: _delete, при этом значение по умолчанию оценивалось как true, а проверенное значение равнялось false .

1 голос
/ 02 декабря 2009

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

  session[:new_quote_items] = []

Тогда, когда они отмечают элементы, у вас может быть ссылка, чтобы добавить их в цитату. Затем вы можете поместить эти идентификаторы в массив. На странице отображения возможных пунктов цитаты вы можете показать пользователю, какие из них проверены, а затем добавить / удалить идентификаторы из этого списка. Затем, когда пользователь завершит работу, он может щелкнуть по ссылке завершения, которая возьмет идентификаторы из сеанса и создаст предложение, как у вас сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...