因此,有很多关于如何执行此操作的文章,但是肯定有最佳实践……而且我对筛选出愚蠢的解决方案,好的解决方案和最佳的解决方案知之甚少。
我只是想通过ajax提交表单(在对话框中)并像不使用ajax一样将错误找回...这意味着我喜欢rails标准错误处理/flash消息/标签类。
我的[有限]知识库中还缺少什么?
最佳答案
我要做的方法是渲染一个create.js.erb
View ,例如:
$("#my_dialog").replaceWith("<%= j(render 'dialog') %>");
其中
_dialog.html.erb
包含对话框内容的HTML。<div id="my_dialog">
<!-- flash stuff etc -->
<%= form_for ... %>
<!-- ... -->
<% end %>
</div>
例如,您的 Controller 将如下所示:
class EntriesController < ApplicationController
def create
@entry = Entry.new(params[:entry])
respond_to do |format|
if @entry.save
format.html { redirect_to @entry }
format.js {} # this will render create.js.erb for js requests
else
format.html { render action: "new" }
format.js {} # this will render create.js.erb for js requests
end
end
end
end
顶峰就像'dat。如果您不想重新加载整个表单,可以在
.js.erb
中进行更新或执行任何操作
关于ruby-on-rails - Rails/Ajax/错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16718937/