如果多个视图需要链接到销毁操作,该怎么办?

时间:2011-01-07 02:15:19

标签: ruby-on-rails

我不知道该怎么做。我有两个脚手架:组和用户。在两个不同的组视图中,我列出了组用户并调用了users_controller的Destroy方法。

由于第二个视图现在正在调用destroy动作,我需要一些方法来检测名为Destroy动作的视图,因为我需要为两个组视图中的每个视图提供不同的重定向和自定义Flash通知。

有没有一种简单的方法可以解决这个问题,或者解决方案是制作Destroy方法的副本并为其映射新路径?

-Thanks!

编辑:也许这是一个愚蠢的想法,但我在想......对于两个相关的视图,如果我在视图生成时将其视图名称存储在会话中(作为Destroy动作的标志知道该怎么办?哪个视图重定向到哪个自定义闪存通知要发回?)

2 个答案:

答案 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

根本不应该重复自己,它会使你的代码最终更容易阅读。