Моего index.js.erb освежает страницу только частично:перенаправления/перезагрузка страницы в js.erb вместо контроллера
$("#view").html("<%= escape_javascript render 'view' %>");
Я могу обновить его полностью в контроллере с этой линией:
format.js { render :js => "window.location.replace('#{url_for(:controller => :view, :action => :index, :some_parameter => value)}');" }
Возможно ли обновить страницу в js.erb?
редактировать: Я называю index.js.erb этой командой в контроллере:
format.js { redirect_to(:action => :index, :format => :js, :some_parameter => value)},
Он обновляет страницу с содержимым для some_parameter, но обновляет его лишь частично.
window.location работает лучше, но я читаю в одном из столбцов переполнения стека, что лучше использовать erb, чем контроллер для javascript. Это правда?
Я попытался использовать format.js {redirect_to (: action =>: index,: format =>: js,: some_parameter => значение)}, но он игнорировал параметр и обновлял страницу только частично, в окне. location.replace полностью обновляет страницу. Я думал, что причина redirect_to не работает, это мой index.js.erb – JohnHF
Вам не нужен формат.js. просто перенаправите URL. Что-то вроде 'redirect_to: action =>: index' – xdazz
Я использую format.js для рендеринга index.js.erb, он выполняет некоторую дополнительную работу, которая необходима. Если я заменил format.js только redirect_to, он не обновит страницу вообще – JohnHF