Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Rails中呈现json表单的错误消息_Javascript_Ruby On Rails_Json_Ruby On Rails 4_Coffeescript - Fatal编程技术网

Javascript 如何在Rails中呈现json表单的错误消息

Javascript 如何在Rails中呈现json表单的错误消息,javascript,ruby-on-rails,json,ruby-on-rails-4,coffeescript,Javascript,Ruby On Rails,Json,Ruby On Rails 4,Coffeescript,我试图在ajax表单上显示提交失败的错误消息。我以前没有接触过ajax表单,也找不到一个可靠的最新指南,说明如何在表单由于任何原因无法保存数据时获取错误消息 我在控制器中有format.json{render:json=>{:errors=>@key.errors.full_messages},:status=>422},用于提交失败的表单,如下所示。但是我不知道JS或coffeescript应该是什么,所以会显示错误消息 类别\项目\钥匙控制器 def new @guide =

我试图在ajax表单上显示提交失败的错误消息。我以前没有接触过ajax表单,也找不到一个可靠的最新指南,说明如何在表单由于任何原因无法保存数据时获取错误消息

我在控制器中有
format.json{render:json=>{:errors=>@key.errors.full_messages},:status=>422}
,用于提交失败的表单,如下所示。但是我不知道JS或coffeescript应该是什么,所以会显示错误消息


类别\项目\钥匙控制器

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
new.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 %>

我已经阅读了所有我能找到的帖子,看看哪些东西需要归入咖啡类,但它们都是3-5岁的,根本不起作用。我确信它没有那么复杂,但我对JS了解不多,无法让它正常工作。

category\u item\u keys controller:

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 %>

$(“”)。prependTo(“#YoursFormId”);
//在没有错误的时候做点什么
create.js.erb,update.js.erb

<%= render 'save' %>

谢谢你能提供更多细节吗?比如new.html.erb中可能需要的内容。我添加了文件并更改了控制器中的行,但它什么也没做
<%= render 'save' %>