Ruby On Rails in UA Icon_home Главная Add to bookmarks Translate translate Profile Войти
Регистрация Форум Блоги Пользователи Список джемов Rails проекты      Поиск   

Ruby On Rails in UA/Программирование на ROR/Отрендеренные данные полученные с AJAX (page.replace_html) при обновлении страницы

2008-10-03 15:33:17 Ответить  
igoRor
igoRor
Адрес:
Сообщений: 5
Регистр: 2008-06-10
его блог 0 сообщ.
Отрендеренные данные полученные с AJAX (page.replace_html) при обновлении страницы
  •  
Что имею:
Вывожу список объектов
@my_objs.each do |o|
-div id="element + o.id.to_s "- -/div-
end

с AJAX открываю элементы из которых они состоят.
page.replace_html( 'element' + $select_id, :partial=>'list_item', :object=>@my_obj )

все отлично работает.

В чем проблема:
Но если сделать апдейт страницы по F5 или когда перегружается страница поcле отправки формы
то что я выводил из list_item уже нет на странице.

Попытался решить ее так.

после загрузки страницы вызываю функцию:
-body id="body" onload="remote_function( :url=>{ :action=>'fill_data_in_open_group' } ) "-

У меня есть список открытых элементов
и пытаюсь отрендерить открытые элементы:
def fill_data_in_open_group()
render :update do |page|
@list_open_elements.each do |opn |
@my_open_elm = CrdBorrower.find( :first, :conditions=>[ "id = ? ", opn.id ] )
page.replace_html( 'element' + opn.id.to_s, :partial=>'list_item', :object=>@my_open_elm )
end
end
end

не работает, выпадает javascript alert:
RJS error:
TypeError: $(element).style is undefined

Element.show(["e", "l", "e", "m", "e", "n", "t", "1", "6", "8"]);
Element.update(["e", "l", "e", "m", "e", "n", "t", "1", "6", "8"], ....

Код я сократил конечно, но странно, что все стринги-операнды в раилс командах именно в этой функции, воспринимаются как array.
Насильно перевожу их в стрингу .to_s - ошибки пропадают, но падает на javascript
Этот же код, но без итератора each работает нормально

Стоит:
Ubuntu 7.10
Ruby-enterprise-1.8.6-20080810
RAILS_GEM_VERSION = '2.1.0'
Apache2.2.4 /Phusion Passenger2.0.3

Может есть другие варианты сохранения данных вставленных через page.replace_html при обновлении страницы
Или как вставить несколько нтмл блоков с помощью page.replace_html за один раз
С уважением, Igorok
, ,
2008-10-08 15:21:42 Ответить  
igoRor
igoRor
Адрес:
Сообщений: 5
Регистр: 2008-06-10
его блог 0 сообщ.
RE: Отрендеренные данные полученные с AJAX (page.replace_html) при обновлении страницы
  •  
Наверно, вопрос сформулировал не очень понятно.
Покопался с кодом и решил проблему...
в page.replace_htm и page.show все стринговые параметры принудительно перевожу еще раз в стринг-
page.show mystring.to_s

Назадназад Новыйновый Ответитьответить
Ключевые слова:
Гости: 89 Онлайн: 0
Rambler's Top100
О проекте по всем вопросам обращайтесь на support
Rubyclub.com.ua Copyright © 2007 - 2008