2011-01-07 115 views
2

我不確定這裏要做什麼。我有兩個腳手架:組和用戶。在兩個不同的組視圖中,我列出了組用戶並調用了users_controller的Destroy方法。如果多個視圖需要鏈接到銷燬操作,該怎麼辦?

由於第二個觀點正調用破壞行動,我需要什麼檢測查看名爲銷燬行動,因爲我需要爲每個的兩組觀點不同的重定向和自定義閃通知某種方式。

是否有解決這個的一個簡單的方法,或將解決方案是這樣做的Destroy方法的副本,並映射一個新的路線?

-Thanks!

編輯:也許這是一個愚蠢的想法,但我在想...對於涉及到的兩個視圖,如果我在視圖生成時將它們的視圖名稱存儲在會話中(作爲Destroy操作的標誌以知道重定向到哪個視圖以及自定義flash通知要發回的內容)?

回答

1

傳遞與鏈接參數,並在您檢查行動這些參數。

一樣,

link_to "Delete", :controller => "groups", :action => "destroy", :pass_par => "view1" 

link_to "Delete", :controller => "groups", :action => "destroy", :pass_par => "view2" 

控制器:

def destroy 
    if params[:pass_par] == "view1" 
    redirect_to view1 
    else 
    redirect_to view2 
    end 
end 
-1

的銷燬方法不是很長,所以是的,繼續複製。

如果它看起來像這樣:

# DELETE /users/1 
    def destroy 
    @user = User.find(params[:id]) 
    @user.destroy 
    redirect_to users_url 
    end 

應該不重複自己的一切,它會讓你的代碼更簡單到底讀。

+0

複製邏輯是不是一個好主意,主要原則之一是讓你的代碼幹 – Jeremy 2011-01-07 03:09:22

+1

我真的很喜歡做的這種方式和一起去了(重複的代碼放在一邊)。我其實並沒有處理繪製路線的問題,但我知道了,一切正常 - 謝謝。 – Reno 2011-01-07 14:52:00

相關問題