Bir ajax formunda gönderilemedi için hata iletileri görüntülemeye çalışıyorum. Daha önce ajax formlarının yolunu aşmadım ve formun ne olursa olsun verileri kaydetmek için başarısız olduğunda gösterilecek hata mesajlarının nasıl alınacağına dair sağlam bir güncel rehber bulamıyorum.Rails'de bir json formu için hata iletileri nasıl oluşturulur
Kontrol cihazında format.json { render :json => { :errors => @key.errors.full_messages }, :status => 422 }
denetleyicim var, aşağıda görüldüğü gibi gönderin. Ancak hata mesajlarının görüntülenebilmesi için hangi JS'nin veya coffeescript'inin bulunduğu hakkında hiçbir fikrim yok.
category_item_keys kontrolör
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
Ben neye ihtiyacı olduğunu görmek için bulabilirsiniz tüm mesajların üzerinde okudum category_item_key.coffee içinde gitmek ama hepsi 3-5 yaşında ve sadece işe yaramıyor. Eminim o kadar da karmaşık değil ama işe yarayabilmek için JS hakkında fazla bir şey bilmiyorum.
teşekkür update.js.erb
_save.js.erb
create.js.erb, biraz daha sağlayabilir detay? new.html.erb’de ne yapılması gerekebileceği gibi. Dosyaları ekledim ve denetleyicideki satırı değiştirdim ve hiçbir şey yapmıyor – Rob