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

时间:2015-04-25 23:08:37

标签: javascript jquery ruby-on-rails ajax ruby-on-rails-4

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

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

这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以在控制器方法中尝试这样的事情:

www-data ALL=(ALL) NOPASSWD: ALL

详细说明:

  • 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,因此执行重定向的唯一方法是使用javascript,否则您将获得您正在重定向为ajax响应的完整呈现页面。
  • respond_to :html, :js允许您在同一请求中访问消息(在您的情况下,错误消息),因为仅使用flash.now仅在下一个请求中允许它。