Я пытаюсь использовать гем pjax-rails для проекта.
Когда я использую метод перенаправления из драгоценного камня. Браузер отображает ответ в виде текста.
Я использую текст / javascript вместо script / javascript.
Вот так выглядит мой контроллер (обратите внимание на redirect_to_pjax):
def create
@contact = Contact.new params[:contact]
if @contact.save
flash[:notice] = "Successfully added contact"
redirect_pjax_to :show,@contact
end
это драгоценный камень https://github.com/rails/pjax_rails
Это оригинальная реализация метода "redirect_pjax_to"
Я думаю, что магия происходит здесь .... (взято из github)
private
def redirect_pjax_to(action, url = nil)
new_url = url_for(url ? url : { action: action })
render js: <<-EJS
if (!window.history || !window.history.pushState) {
window.location.href = '#{new_url}';
} else {
$('[data-pjax-container]').html(#{render_to_string("#{action}.html.erb", layout: false).to_json});
$(document).trigger('end.pjax');
var title = $.trim($('[data-pjax-container]').find('title').remove().text());
if (title) document.title = title;
window.history.pushState({}, document.title, '#{new_url}');
}
EJS
end
Я полагаю, что render: js здесь нужен content_type ...
У кого-нибудь есть такие же проблемы? Или лучше какие-нибудь решения?