ajaxフォームで失敗した投稿のエラーメッセージを表示しようとしています。私は前にajaxフォームのパスを行っていないし、フォームが何らかの理由でデータを保存できないときにエラーメッセージを表示する方法についての最新のガイドを見つけることができません。Railsでjsonフォームのエラーメッセージをレンダリングする方法
以下に示すように、失敗したフォーム送信のコントローラにはformat.json { render :json => { :errors => @key.errors.full_messages }, :status => 422 }
があります。しかし、私はJSやcoffeescriptにどのようなエラーメッセージが表示されるのか分からない。
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
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 %>
category_item_key.coffee
# No idea what is needed in here
私は私が必要なものを見るために見つけることができるすべての記事の上に読みましたcategory_item_key.coffeeに入ることができますが、それらはすべて3-5歳で、ちょうどうまくいきません。私はそれが複雑ではないと確信していますが、私はそれを働かせるためにJSについて知りません。
おかげupdate.js.erb
_save.js.erb
create.js.erb、あなたはもう少しを提供することができます詳細は? new.html.erbに入る必要があるようなものです。私はファイルを追加し、コントローラ内の行を変更し、何もしません – Rob