憑藉簡單的控制器:在Rails應用程序發送Ajax後的Jquery
def new
@product = Product.new
respond_to do |format|
format.html #new.html.erb
format.json { render json: @product}
end
end
def create
@product = Product.new(params[:product])
respond_to do |format|
if @product.save
format.html { redirect_to @product, notice: "Save process completed!" }
format.json { render json: @product, status: :created, location: @product }
else
format.html {
flash.now[:notice]="Save proccess coudn't be completed!"
render :new
}
format.json { render json: @product.errors, status: :unprocessable_entity}
end
end
end
和簡單的Ajax請求
$("h1").click ->
$.post
url: "/products/"
data:
product:
name: "Filip"
description: "whatever"
dataType: "json"
success: (data) ->
alert data.id
我嘗試發送新產品,但服務器響應
[2013- 07-09 18:44:44]錯誤錯誤的URI`/ products/[object%20Object]'。
而且數據庫中沒有任何變化。爲什麼沒有獲得/產品uri其產品/ [oobject]的東西?那裏有什麼錯?
只是一個側面說明,但做的respond_to |格式|對於Rails 3是不必要的。您可以在控制器的頂部使用respond_to:html,:xml,然後在action中使用@object_name。如果您有興趣,請參閱Railscast:http://railscasts.com/episodes/224-controllers-in-rails-3?view=asciicast –