我試圖在rails中創建一個啓用ajax的窗體。當我點擊提交按鈕時,窗體正常保存(我可以看到更新發生在數據庫中),但是,頁面剛好位於那裏(看起來好像什麼都沒有發生,沒有重定向等),並且在我的Web檢查,我看到以下錯誤:Rails的AJAX形式保存,重定向,更新問題
POST http://localhost:3000/user/mike 500 (Internal Server Error)
然而,當我點擊上面的鏈接(HTTP://本地主機...)顯示在頁面包括:notice
。
我希望頁面像通常那樣重定向,並顯示:notice
(如果可用)。我還希望能夠將表單保存在ajax上,而不會在某個時間間隔(每分鐘左右)重定向。這可能嗎?
user_controller.rb
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
format.html { redirect_to(@user, :notice => 'User saved.') }
format.js
else
format.html { render :action => "new" }
format.js
end
end
end
def update
@user = User.find_by_username(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to(@user, :notice => 'User updated.') }
format.js
else
format.html { render :action => "edit" }
format.js
end
end
end
而且,這裏是我的表單標籤:
<%= form_for @user, :remote => true, :html => { :multipart => true, :class => 'edit_profile' } do |f| %>
任何建議將是非常有益的...謝謝大家。
我沒有時間收集鏈接,但應該定期查看ajax輪詢以保存表單。如果您希望頁面在提交時重定向,則應從表單中刪除remote => true。默認情況下,Rails會查找一個update.js視圖文件,以便在通過ajax發送表單時作出響應。如果你沒有它,它在客戶端不會做任何事情。 – Msencenb