2011-01-07 30 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

相关问题