2011-06-29 28 views
1

私は多くの関係を扱っています。モデルは、場所がhas_many search_termsの "places"と "search_terms"です。新しいレコードを作成すると、ビューが更新され、新しいsearch_termがリストに追加されます。しかし、search_termレコードを削除すると、レコードを削除してPlaceの "show"メソッドを実行しても、ビューは更新されません。ここで起こっていただきました!私は3をレールにはかなり新しいですRails 3でレコードを削除した後、更新されたビューは更新されません

は本当に...

乾杯、 Gearoidを把握することはできません。

編集:あなたは、コントローラのコードを投稿することができ、私はあなたを誤解される可能性があります

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

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

答えて

0

​​

場所コントローラのshowメソッド:SEARCH_TERMSコントローラは法を破壊しますか?

これはajaxで起こっていますか?そうでない場合は、再レンダリングする代わりにShowにリダイレクトできますか?とにかくそれはおそらくユーザーのための好ましい経験です。

UPDATE

これはAJAXの上に起こっている場合は[OK]を、その後、問題は簡単です。 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

関連する問題