В моем приложении на Rails я пытаюсь использовать jQuery ajax для создания нового элемента с помощью метода create
по умолчанию в моем контроллере.
Мой routes.rb
выглядит так:
resources :items
Код на стороне сервера остается таким же, как он был сгенерирован:
# POST /items
# POST /items.json
def create
@item = Item.new(params[:item])
respond_to do |format|
if @item.save
format.html { redirect_to @item, :notice => 'Item was successfully created.' }
format.json { render :json => @item, :status => :created, :location => @item }
else
format.html { render :action => "new" }
format.json { render :json => @item.errors, :status => :unprocessable_entity }
end
end
end
И мой JavaScript:
$("#capture_input").focusout(function() {
var description = $(this).val();
$.ajax({
type: "POST",
url: '/items/create.json',
data: {
item: {
description : description
}
},
dataType: 'json',
success: function(msg) {
alert( "Data Saved: " + msg );
}
});
});
Это кажется очень простым, но я получаю следующую ошибку:
ActionController::RoutingError (No route matches [POST] "/items/create.json"):
Мне удалось использовать метод update
по умолчанию в аналогичной ситуации без каких-либо проблем. В чем здесь проблема?
РЕДАКТИРОВАТЬ: Исправлена опечатка в коде rout.rb.