繁体   English   中英

Rails-使用AJAX渲染JavaScript或重定向

[英]Rails - render JavaScript with AJAX or redirect

我有一个rails remote form_for 由于多种原因,使用AJAX提交表单的内容是一个更好的主意。 如果在保存表单时出错,我希望能够将.js.erb文件呈现到页面上,该页面用显示所有错误的部分更新错误div。

如果没有错误,我希望能够重定向并显示即显消息。

这可能吗?

您可以在控制器方法中尝试以下操作:

if @code
   flash[:success] = 'Success message'
   render js: "window.location = '#{path}'"
else
   flash.now[:alert] = @instance.errors.full_messages
   render partial: 'your/partial'
end

详细说明:

  • @code代表一个变量,该变量保留有关执行的模型方法的代码/信息;
  • @instance代表模型实例;
  • path表示要在没有错误的情况下重定向的路径;
  • render js: <...>而不是redirect_to因为您可能已在控制器中设置了respond_to :html, :js ,所以唯一的重定向方法是使用javascript,否则您将获得完整的渲染您作为ajax响应重定向的页面。
  • flash.now允许您在同一请求中访问消息(在您的情况下为错误消息),因为仅使用flash允许在下一个请求中访问消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM