как передать строки html_safe в части рендеринга js - PullRequest
4 голосов
/ 11 октября 2010

У меня есть приложение rails 2.3.9, которое я перевожу на rails 3.

Как почти у всех, у меня проблемы с рендерингом строк, особенно сценариев JQUERY, которые были встроены.Раньше кто-то говорил мне, что в рельсах 3 все изменилось, я не могу сейчас переписать все свои скрипты.Я сделаю это, это будет запланировано, но сейчас я хочу, чтобы это работало.

Переходя к моему вопросу:

У меня есть контроллер со следующим фрагментом кода

respond_to do |format|
 format.js { render :partial=>'update'}
 format.html { head 406 }
end

Мой _update.js.erb содержит смесь между JS и ERB:

<% if MyClass.count > 0 %>
 $('.show_object:visible').hide();
<%else%>
  if($('.show_object').css('display') == 'none'){
   $('.show_object').blink({times: 7})
  }
<%end%>

Он работает в рельсах 2.3.9, но не в Rails 3. Мой вопрос:

  • Должен ли я поставить все мои jquery-вызов html_safe?
  • есть ли в контроллере способ пометить весь фрагмент как html_safe?

1 Ответ

2 голосов
/ 12 октября 2010

Я решил это, используя мой контроллер:

format.js { 
 render :js=> { render_to_string(:partial=>'update').html_safe!}
} 

это работает, но не выглядит хорошим решением.Любая другая идея?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...