如何在 Rails 中呈现 json 表单的错误消息
How to render error messages for a json form in Rails
我正在尝试在 ajax 表单上显示提交失败的错误消息。我以前没有走过ajax表单的道路,也找不到一个可靠的最新指南,说明当表单由于任何原因无法保存数据时,如何显示错误消息。
我在控制器中format.json { render :json => { :errors => @key.errors.full_messages }, :status => 422 }
了失败的表单提交,如下所示。但是我不知道该拥有什么JS或咖啡脚本,因此会显示错误消息。
category_item_keys控制器
def new
@guide = Guide.friendly.find params[:guide_id]
@category = Category.friendly.find params[:category_id]
@key = @category.category_item_keys.new
end
def create
@guide = Guide.friendly.find params[:guide_id]
@key = @category.category_item_keys.new key_params
@category = Category.friendly.find params[:category_id]
if @key.save
CategoryItemKey.find(@key.id).update(submitted_by: current_user.id, approved_by: current_user.id, guide_id: @guide.id)
respond_to do |format|
format.html { redirect_to new_guide_category_category_item_key_path(@guide, @category)
flash[:success] = "Key added successfully!" }
format.json { render :json }
format.js
end
else
respond_to do |format|
format.html { render 'new' }
format.json { render :json => { :errors => @key.errors.full_messages }, :status => 422 }
format.js
end
end
end
def key_params
params.require(:category_item_key).permit(:name, :key_type)
end
新.html.erb
<%= form_for([@guide, @category, @key], url: guide_category_category_item_keys_path, remote: true, :authenticity_token => true) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.label :name, "Key name" %>
<%= f.text_field :name %>
<%= f.select :key_type, [['Stat', 1], ['Attribute', 2], ['Image', 3], ['Text', 4]] %>
<%= f.submit "Next" %>
<% end %>
category_item_key.咖啡
# No idea what is needed in here
我已经阅读了我能找到的所有帖子,看看category_item_key.coffee需要做什么,但它们都是3-5岁的,只是不起作用。我确定它没有那么复杂,但我对 JS 了解不多,无法让它工作。
category_item_keys 控制器:
format.json { render :json => @key.errors, :status => 422 }
_save.js.erb
<% if @key.errors.any? %>
$("<%= j(render 'shared/error_messages') %> ").prependTo('#YoursFormId');
<% else %>
// do something when no errors
<% end %>
create.js.erb, update.js.erb
<%= render 'save' %>
相关文章:
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- jquery从2个json字符串构建一个复选框表单
- JavaScript-HTML表单到JSON(空值)和格式
- 如何使用多维JSON数据重新填充表单
- mootools表单json post请求
- 如何将HTML表单(JSON格式)中的数据分配给变量
- 在谷歌应用引擎上用jQuery处理json表单
- REST API 服务器是否应该使用 PUT 接收 JSON 数据或普通表单数据
- JSON 填充的表单元素不使用 angularJs 过滤器进行过滤
- 在表单提交时设置JSON格式
- AngularJS:表单提交没有返回JSON中的值
- jQuery表单和Json问题
- 从JSON模式创建表单,如何添加关闭按钮
- 如何获取给定表单详细信息的嵌套json对象
- 如何从json模式创建表单
- Angularjs表单json提交
- Javascript对象&数组通过表单(json/?? ?)到服务器-最佳实践
- 如何在添加/删除文本字段和表单JSON中获得所有文本字段的值
- 使用jQuery提交表单(json编码,ajax,解析原始url/方法)
- 通过AJAX将表单JSON数据发送到服务器