Rails-使用AJAX或重定向呈现JavaScript

Rails-使用AJAX或重定向呈现JavaScript,javascript,jquery,ruby-on-rails,ajax,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Ajax,Ruby On Rails 4,我有一个用于的rails远程表单。出于几个原因,使用AJAX提交表单内容是一种更好的方法。如果保存表单时出现错误,我希望能够将.js.erb文件呈现到页面,该页面使用显示所有错误的部分更新错误div 如果没有错误,我希望能够重定向并显示一条闪光消息 这可能吗?您可以在控制器方法中尝试类似的方法: if @code flash[:success] = 'Success message' render js: "window.location = '#{path}'" else f

我有一个用于的rails远程
表单。出于几个原因,使用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\u to
    ,因为您可能已经在控制器中设置了
    response\u to:html,:js
    ,所以重定向的唯一方法是使用javascript,否则您将获得作为ajax响应重定向的完整呈现页面
  • flash。现在
    允许您在同一请求中访问消息(在您的情况下是错误消息),因为仅使用
    flash
    仅允许在下一个请求中访问