【发布时间】:2016-04-17 23:58:21
【问题描述】:
我在 Rails 4 中使用 remote: true 创建了一个 ajax 表单。由于某种原因,我错过了,我的验证错误没有显示在表单中。
这是我当前的代码库:
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 gem,这可能会使我的控制器目标代码对很多人来说有点陌生。我正在按照gem
在我的 js 文件中渲染一个单元格更新 我已经为此挣扎了一些。我实现了一个解决方案,该解决方案逐字复制了我在以前的应用程序中构建的“远程:真实”解决方案。这在我以前的应用程序中完美运行,但在我的新应用程序中没有显示验证错误。这两个应用程序之间的唯一区别是 Ruby 和 Rails 的版本。
在第一个应用程序中,我运行 Ruby:2.2.1 和 Rails:4.2.2。我的新应用程序(“我无法运行的应用程序”)我正在运行 Ruby:2.2.3 和 Rails:4.2.4。
这可能有影响吗??
【问题讨论】:
-
从您的回答中了解到
render_cell,谢谢 -
你能发布来自浏览器的准确的 HTML 响应吗?有趣的是它是如何工作的而不是
remote -
@RichPeck 感谢您的回复。很高兴我能帮上忙。这是一个很棒的小宝石,它对我清理代码有很大帮助。我不清楚你到底在问什么?我也用更多细节更新了我的问题。
标签: jquery ruby-on-rails ajax forms ruby-on-rails-4