我可以帮您翻译成中文。这段内容是关于在Rails 4中使用remote: true创建ajax表单的,但是存在一个问题,即验证错误无法显示在表单中。以下是当前代码库的代码:
我期望这段代码在提交错误后显示验证错误。然而出于某种原因,在提交不正确的表单后什么也没有发生。我可以确认表单已被提交,因为提交在日志中被处理。当我删除远程提交时,我也可以确认表单完美地工作。
有什么我漏掉的吗?
PS. 我正在使用Reform宝石,这可能会使我的控制器对象代码对许多人来说有点陌生。我在我的js文件中呈现一个单元格,如此gem。
更新:我已经进一步努力解决这个问题。我实施了一个解决方案,复制了我在以前的应用程序中构建的“remote:true”解决方案,原封不动地实现。这在我的以前的应用程序中无缝运行,但在我的新应用程序中没有显示验证错误。这两个应用程序之间唯一的区别是Ruby和Rails的版本。
在我第一个应用程序中运行的是Ruby: 2.2.1和Rails: 4.2.2。我的新应用程序(“我无法使其工作的应用程序”)正在运行Ruby: 2.2.3和Rails: 4.2.4。这可能会有影响吗?
1. 表单
= simple_form_for @foo, url: foos_path, as: :foo, remote: true do |f|
.row
.input-field
= f.input :bar
.right-align.card-button
= f.button :submit, class: "waves-light blue", data: { disable_with: "Loading..." }
2. create.js.erb
$("#new_foo").html('<%= j render_cell :foo, :form, foo: @foo %>');
3. 控制器
def create
@foo = FooForm.new( Foo.new )
respond_to do |format|
if @foo.validate(params[ :country ])
@foo.save
format.html { redirect_to root_path }
format.json { render :show, status: :created, location: @foo.model }
format.js
else
format.html { render :new }
format.json { render json: @foo.errors, status: :unprocessable_entity }
format.js
end
end
end
我期望这段代码在提交错误后显示验证错误。然而出于某种原因,在提交不正确的表单后什么也没有发生。我可以确认表单已被提交,因为提交在日志中被处理。当我删除远程提交时,我也可以确认表单完美地工作。
有什么我漏掉的吗?
PS. 我正在使用Reform宝石,这可能会使我的控制器对象代码对许多人来说有点陌生。我在我的js文件中呈现一个单元格,如此gem。
更新:我已经进一步努力解决这个问题。我实施了一个解决方案,复制了我在以前的应用程序中构建的“remote:true”解决方案,原封不动地实现。这在我的以前的应用程序中无缝运行,但在我的新应用程序中没有显示验证错误。这两个应用程序之间唯一的区别是Ruby和Rails的版本。
在我第一个应用程序中运行的是Ruby: 2.2.1和Rails: 4.2.2。我的新应用程序(“我无法使其工作的应用程序”)正在运行Ruby: 2.2.3和Rails: 4.2.4。这可能会有影响吗?
render_cell
,谢谢你。 - Richard Peck