我有一个rails form_for
。由于多种原因,使用AJAX提交表单内容是一种更好的方法。如果保存表单时出错,我希望能够将.js.erb
文件呈现给更新错误div的页面,其中部分显示所有错误。
如果没有错误,我希望能够重定向并显示flash消息。
这可能吗?
答案 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
仅在下一个请求中允许它。