【发布时间】:2017-02-03 21:04:09
【问题描述】:
在我的 Rails 5 / Turbolinks 5 应用程序中,我想将表单提交产生的 html 放入 div 中。
表格是一个
= form_for(user) do |f|
标准导轨形式。
成功提交后,会向浏览器发送重定向
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was created.' }
当我通过 ajax 提交表单时:
$(".dialog").on("submit", "form", function(e){
e.preventDefault();
$.ajax({
url: $(this).attr("action"),
method: "POST",
data: $(this).serialize()
}).done(function(data) {
$(".dialog .canvas").html(data);
});
});
from 被提交,服务器的 redirect_to 语句将浏览器重定向到新用户的页面。
重定向会导致 turbolink 将正文替换为浏览器重定向到的页面内容。相反,我想替换特定的 div $(".dialog .canvas").html(data)。我怎样才能防止 turbolinks 的这种行为。
【问题讨论】:
-
你能添加你的控制器代码吗?我的猜测是您不应该重定向,而是呈现对请求的响应。
-
观看此视频会对您有所帮助。 railscasts.com/episodes/205-unobtrusive-javascript
标签: jquery ruby-on-rails ajax turbolinks-5