【发布时间】:2014-11-01 23:00:37
【问题描述】:
我有一个通过 AJAX 提交的表单,因此来自服务器的预期响应格式是 javascript。问题是我不能像这样进行验证。通常我会这样做:
# POST /cats
# POST /cats.json
def create
@cat = Cat.new(cat_params)
respond_to do |format|
if @cat.save
format.html { redirect_to @cat, notice: 'Cat was successfully created.' }
format.json { render action: 'show', status: :created, location: @cat }
else
format.html { render action: 'new' }
format.json { render json: @cat.errors, status: :unprocessable_entity }
end
end
end
但是现在我有这样的情况:
# POST /cats
# POST /cats.json
def create
@cat = Cat.new(cat_params)
respond_to do |format|
if @cat.save
format.js { }
else
format.js { ????? }
end
end
end
我创建了create.js.erb,如果保存了新对象,它会完成我所需的一切,但如果未保存对象,我不知道如何处理验证显示。在我的表单中,如果我不使用 AJAX,我有这个可以工作:
<% if @cat.errors.any? %>
<div id="error_explanation">
<ul>
<% @cat.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
我能做什么?我正在使用 Rails 4。
【问题讨论】:
标签: javascript jquery ruby-on-rails ajax jquery-file-upload