Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глюк выпадающего списка select, не ставится selected="selected" 
:(
    Опции темы
m_maxser
Дата 2.7.2012, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 5.2.2008

Репутация: нет
Всего: нет



Здравствуйте.

Есть модель User с полем email_options, поле хранит настройки email рассылки. Чтобы изменить настройки, пользователь заходит в личный кабинет, где выбирает их из выпадающего списка. Список создается так:

Код

<%= select(:user, :email_options,
  [
    ['Опция 1', 0],
    ['Опция 2', 1],
    ['Опция 3', 2],
    ['Опция 4', 3]
  ])
%>


Локально (W7, mysql), все работает как надо. А вот на сервере (Linux, Oracle) есть проблема с отображением. Например если у пользователя в БД, поле "email_options" хранит значение "2", то по при генерации списка, "Опция 3" должна помечаться как selected="selected". Но этого не происходит. Из-за этого всегда отображается первый элемент списка ("Опция 1"). При этом сохранение в БД работает. Я без проблем выбираю элемент, жму "сохранить" и значение в БД меняется. 

В чем может быть причина?
PM MAIL   Вверх
m_maxser
Дата 2.7.2012, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 5.2.2008

Репутация: нет
Всего: нет



пожалуйста помогите разобраться
PM MAIL   Вверх
source777
Дата 2.7.2012, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



В приведённом тобой примере надо вручную указывать текущее значение, после опций {:selected => value} 
Но лучше использовать хелперы из модуля FormBuilder, которые автоматически подставляют значения атрибутов на основе созданного в контроллере объекта. Подробно описано в  Rails Guides.

Это сообщение отредактировал(а) source777 - 2.7.2012, 17:45


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
m_maxser
Дата 3.7.2012, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 5.2.2008

Репутация: нет
Всего: нет



Так мой пример полностью соответствует тому, что написано в Rails Guides.
первый параметр для работы с конкретной моделью
второй - поле этой модели
третий - массив значений, который может принимать это поле.

И если второй параметр уже содержит значение, то соответствующий элемент из массива помечается как "selected". Пример нормально работает локально. Глюк только на хостинге был.

Проблему можно сказать решил, все дело в моей невнимательности и лени :(. По моему это было из-за того, что когда я добавлял новое поле в модель User, миграцию запустил только на локали. На сервере было лень (живая БД и т.п.), так что я просто закомитил миграцию, без ее запуска. Поле добавил вручную. Я так уже делал раньше, все было нормально. При этом все нормально сохранялось. 

Обнаружил причину, когда запустил копию проекта с другой БД, но уже через миграции. Там все работало. А сервер тотже, все такое же smile.

Вот! smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby on Rails"
source777
  • С чего начать? начинаем
  • Документацию смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby On Rails | Следующая тема »


 




[ Время генерации скрипта: 0.1073 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.