[英]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.