Невозможно отобразить JavaScript из контроллера Rails
Я хочу отобразить модальное окно с сообщением об ошибке, когда пользователь ввел что-то недопустимое в форму, но выполнить другое действие, если все в порядке. Тем не менее, когда я пытаюсь отобразить модальное окно с
render :js => "jQuery.facebox(#{...})"
отображается только фактический вызванный JavaScript:
try {
jQuery.facebox(...)
} catch (e) { alert('RJS error:\n\n' + e.toString());
alert('jQuery.facebox(\"<div class=\'error\'>Error</div>\")');
throw e;
}
3 ответа
Вы пытались поставить код в частичную? Так что вместо
render :js => "jQuery.facebox(#{...})"
пытаться
render :partial => "my_facebox_popup"
Затем внутри вашего _my_facebox_popup.html.erb частично поместите ваш код:
<script type = "text/javascript">
...
</script>
отлаживать любые ошибки, которые вы получаете с Firebug.
Попробуй это
render :update do|page|
page << "jQuery.facebox(#{...})"
end
Возможно, вам следует указать в вызове jQuery dataType ответа, которого вы ждете.
Например:
$.ajax({
url: "/controller/action/id",
success: function(){
$(this).addClass("done");
},
dataType: 'script'
});