2016-05-14 63 views
3

我正在Ruby on rails上工作。我已經成功地建立了一個能夠呈現我的create.js.erb的表單。但我想知道是否有任何方法來檢查表單是否無法創建對象?現在,如果失敗,它什麼也不做。Rails format.js和遠程真

我的控制器看起來是這樣的:

if @expansion.save 
    respond_to do |format| 
     format.js 
     format.html { render action: "index", notice: 'Book was successfully created.' } 
     format.json { render json: @book, status: :created, location: @book } 
    end 
else 
    respond_to do |format| 
     format.js 
     format.json { render json: @book.errors, status: :unprocessable_entity } 
     format.html { render action: "index", notice: 'something went wrong' } 


     end 
end 

有我的方式來拿起create.js.erb錯誤?

回答

1

Rails guides on Ajax

$(document).ready -> 
    $("#new_article").on("ajax:success", (e, data, status, xhr) -> 
    $("#new_article").append xhr.responseText 
).on "ajax:error", (e, xhr, status, error) -> 
    $("#new_article").append "<p>ERROR</p>" 

總之,你應該把你的Ajax功能檢查,以查看服務器是否具有成功或失敗的響應。

1

您仍然可以訪問create.js.erb中的@expansion實例變量。您可以執行取決於@ expansion.errors的存在的js代碼 - 例如:

<% if @expansion.errors %> 
    alert("You have the following errors: <%= @expansion.errors %>"); 
<% else %> 
    // js code for successful save 
<% end %>