0
我嘗試爲項目使用pjax-rails gem。帶導軌的pjax 3.1 redirect_pjax_to只呈現文本
當我從寶石中使用重定向方法。瀏覽器將響應呈現爲文本。 我asume文本/ JavaScript而不是腳本/ 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
我asume渲染:js在這裏需要一個content_type ...
有沒有人有同樣的問題?還是更好的解決方案?
我可以使用沒有問題的鏈接。當我在pjax-rails gem附帶的控制器中使用redirect_pjax_to方法時。這個方法是eq。爲redirect_to只是與ajax/pjax。 –