我不知道该怎么做。我有两个脚手架:组和用户。在两个不同的组视图中,我列出了组用户并调用了users_controller的Destroy方法。
由于第二个视图现在正在调用destroy动作,我需要一些方法来检测名为Destroy动作的视图,因为我需要为两个组视图中的每个视图提供不同的重定向和自定义Flash通知。
有没有一种简单的方法可以解决这个问题,或者解决方案是制作Destroy方法的副本并为其映射新路径?
-Thanks!
编辑:也许这是一个愚蠢的想法,但我在想......对于两个相关的视图,如果我在视图生成时将其视图名称存储在会话中(作为Destroy动作的标志知道该怎么办?哪个视图重定向到哪个自定义闪存通知要发回?)
答案 0 :(得分: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 :(得分:-1)
destroy方法不是很长,所以是的,请继续复制它。
如果它看起来像这样:
# DELETE /users/1
def destroy
@user = User.find(params[:id])
@user.destroy
redirect_to users_url
end
根本不应该重复自己,它会使你的代码最终更容易阅读。