Выбрать тег иногда отображает с неправильными данными - PullRequest
1 голос
/ 07 февраля 2011

Моя команда пытается отследить странную ошибку в Rails (версия 2.3.8) приложении. Определенное представление представляет собой форму поиска, содержащую несколько <select> элементов управления. Эти элементы управления отображаются в шаблоне Haml (версия 3.0.18), а их содержимое заполняется из объектов ActiveRecord следующим образом (упрощенно):

%form#search
  = collection_select :product, :id, Product.all, :id, :name
  = collection_select :product, :vendor_id, Vendor.all, :id, :name
  ... a few more

Время от времени, в том, что кажется случайным и редким, элемент управления отображает, где каждый <option> является либо случайным числом (предположительно #object_id для ruby ​​для этой записи), либо значениями из другого выбора в та же форма, например, - название продукта select отображает имена поставщиков и наоборот. Мы не можем воспроизвести эту проблему, но видели это несколько раз.

Кто-нибудь знает о возможной ошибке Haml / Rails, которая может вызвать это, или имеет какие-либо мысли о том, как мы можем отследить эту ошибку дальше или получить некоторое представление о том, что происходит? спасибо.

Ответы [ 2 ]

1 голос
/ 13 июня 2011

У меня похожая проблема, но мы не используем Haml. Вместо этого мы используем Spring MVC 3.0 с JSP. Не очень часто, но пользователи нашего сайта получают случайные значения в теге select. Список, который заполняет этот тег выбора, содержит более 7000 записей. Я предполагаю, что это связано с размером данных, и браузеры не могут заполнить точное значение. Другими словами, если фактическое значение, которое должно быть выбрано, составляет 5000-ю позицию, браузер отображает все, что у него есть, до достижения 5000-й позиции. Это также может быть проблемой с пружинными тегами, которые используются для визуализации выбора.

Чтобы преодолеть эту проблему, я нашел обходной путь (возможно, это не лучший подход), чтобы использовать java-скрипт для загрузки точных значений.

Если вы, ребята, узнаете точную проблему с решением, пожалуйста, сообщите мне об этом. Спасибо

Амит :)

0 голосов
/ 21 февраля 2011

Для меня это звучит как проблема кеширования.Используете ли вы что-нибудь для кэширования на уровне модели, например cache_money?

...