2011-06-29 44 views
1

我正在處理一個基本的一對多關係,我正在刪除多條記錄。模型是「地點」和「search_terms」,其中的地方has_many search_terms。當我創建一條新記錄時,視圖被更新並且新的search_term附加到列表中。但是,當我刪除search_term記錄時,即使刪除記錄併爲Place運行「show」方法,視圖也不會刷新。在刪除Rails 3中的記錄後,刷新的視圖不會更新

我是很新的軌道3,從而無法真正弄清楚什麼怎麼回事...

乾杯, Gearoid。

編輯:SEARCH_TERMS控制器破壞方法:

​​

的地方控制器顯示方法:

def show 
    @place = Place.find(params[:id]) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.xml { render :xml => @place } 
    end 
end 

回答

0

我可能會誤解你,你可以發佈你的控制器的代碼?

這是發生在ajax上嗎?如果沒有,你可以重定向到Show而不是重新渲染它嗎?無論如何,這可能是用戶的首選體驗。

UPDATE

好吧,如果這是怎麼回事了阿賈克斯,那麼問題就簡單了。您的destroy操作僅預期正常的瀏覽器事件並執行redirect_to調用。 ajax調用不知道如何處理它,只是坐在那裏。你可能會看到類似Firebug的重定向代碼。

我對jquery-rails不太熟悉(我更喜歡自己寫所有的js,因爲我是肛門)。你可以有destroy動作返回一個js格式像這樣:

def destroy 
    @search_term = SearchTerm.find(params[:id]) 
    @search_term.destroy 

    @place = Place.find(params[:place_id]) 
    respond_to do |format| 
     format.html { redirect_to place_path(@place) } 
     format.js { render :nothing => true } 
    end 
end 

,這將使AJAX調用者OK信號,它已經完成了它的事情。儘管如此,您的JavaScript仍然必須智能地處理此響應,例如從DOM中移除元素。

+0

在編輯中的上述代碼。我敢肯定刪除調用通過AJAX默認在Rails 3中傳遞(順便說一下,我使用jquery-rails gem) – Ger

相關問題