Как переместить популярные регионы наверх списка?

20 views
Skip to first unread message

sanchosrancho

unread,
Jul 12, 2012, 10:46:36 AM7/12/12
to synerg...@googlegroups.com
Кто нибудь знает красивый и простой способ переместить популярные города наверх списка регионов?
Чтобы было так:

Регион/Область *
  • Москва
  • Санкт-Петербург

  • Алтайский край
  • Амурская обл
  • Архангельс...
  • ..

Я поковырялся в сорцах. Нашел место, где растёт код. Он в геме spree_address_book. Но так как рельсы знаю не очень хорошо, то как сделать красиво пока не знаю.
Пока что просто написал маленький джаваскрипт на странице, который выдирает Москву и Питер, и переносит их на вершину выпадающего списка :)

    $("select[name='order[ship_address_attributes][state_id]']")
.prepend( $(this).find("option[value='77'],[value='78']") )
.prepend('<option>');

Alexander Negoda

unread,
Jul 12, 2012, 10:54:54 AM7/12/12
to synerg...@googlegroups.com
Есть библиотека acts_as_list которая позволяет произвольно манипулировать сортировкой. Она добавляет поле position в таблицу и это поле должно заполниться числами, соответственно которым и будет произведена сортировка. Например, Москве можно задать position=1 и этот город будет всегда первым.
Конечно же, чтобы это сделать надо либо подправить spree_address_book, либо написать своё расширение :)

Nikolay

unread,
Jul 13, 2012, 4:39:54 AM7/13/12
to synerg...@googlegroups.com
Измени значение 'id' в таблице 'states' в нужном тебе порядке.

четверг, 12 июля 2012 г., 18:46:36 UTC+4 пользователь sanchosrancho написал:

sanchosrancho

unread,
Jul 24, 2012, 11:39:07 AM7/24/12
to synerg...@googlegroups.com

Спасибо! acts_as_list представляется довольно правильным и гибким решением в данной ситуации.

четверг, 12 июля 2012 г., 18:54:54 UTC+4 пользователь Alexander написал:
Reply all
Reply to author
Forward
0 new messages