2013-08-24 5 views
1

У меня есть действия контроллера, который принимает тележку пунктов и если покупка прошла успешно работает в этом действие:Каким Handle Рельсы Маршруты Массивы

redirect_to "/delist/#{session[:pending_purchase]}" 

Где: pending_purchase массив чисел элемент ID (из элементы, которые были добавлены в корзину), и delist удаляет указанный предмет (ы) из магазина, чтобы они больше не были доступны для покупки.

Мой вопрос: может ли метод redirect_to обрабатывать массив? Есть ли способ установить это на моих маршрутах, чтобы он передавал массив контроллеру delist? Или есть лучший способ сделать это все вместе?

ответ

0

Краткий ответ: № redirect_to может обрабатывать только строки, названные помощники URL и переменные экземпляра, которые будут преобразованы в именованный URL-адрес.

Длинный ответ: неправильное действие в вашем случае.

Вы готовите неправильно, чтобы в этом случае ввести идентификаторы в URL. Вы можете снова перенаправить на URL-адрес корзины. Элементы удалены из корзины, поэтому новая тележка показывает обновленные элементы. Зачем нужны элементы ids в url?

+0

В моей корзине создаются позиции, не связанные с самим перечислением продуктов. Дельфист-конроллер не имеет ничего общего с тележкой. Контроллер delist просто отслеживает, с какими идентификаторами продуктов связаны эти позиции, когда они добавляются в корзину. Поэтому при совершении покупки удаляются элементы из моего активного инвентаря. Контроллер delist фактически использует API для доступа к другому магазину электронной торговли и удаляет его оттуда тоже, поэтому мои запасы остаются синхронизированными. – Davey

+0

@ Дави, может быть, я не понял вашу ситуацию полностью. Но, в соответствии с вашими комментариями, вы не могли бы создать новый столбец в модели Cart, сериализовать его, чтобы сохранить идентификаторы? Это должно быть намного проще. –

+0

Да, это будет иметь больший смысл. Спасибо за предложение, я обязательно это реализую! – Davey