无法覆盖活动的管理默认重定向路径

时间:2014-07-31 08:31:42

标签: ruby-on-rails ruby

我在我的应用程序中使用了活动管理员。在我的控制器中,我有一个带redirect_to功能的动作更新。但在更新时,它给我一个错误。

在此操作中多次调用渲染和/或重定向。请注意,您只能调用渲染或重定向,每次操作最多一次。另请注意,重定向和渲染都不会终止操作的执行,因此如果要在重定向后退出操作,则需要执行redirect_to(...) and return之类的操作。

def update
 @user = User.find(params[:id])
 @user.update
 mailers.notify(@user).deliver     
  redirect_to user_path(@user)
end

我试过

  1. only redirect_to
  2. redirect_to()并返回
  3. 但没有任何作用。

    before_filter :only =>[:create,:update] do
     if self.action_name.to_sym == :create
      @user = User.new(params[:user])
     else
      @user = User.find(params[:id])
     end
    

2 个答案:

答案 0 :(得分:1)

我通过将此添加到我的更新操作来解决此问题。这对我很有用。

 def update
  update!do |format| 
    format.html { redirect_to_user_path(@user)}
  end

答案 1 :(得分:0)

你的目的是什么?为什么在mailers.notify(@user).deliver操作中使用update

  1. 将通知移至after_update模型中的User过滤器,如下所示:

    after_update :send_notifications
    
    def send_notifications 
      Mailer.notify(self).deliver
    end
    
  2. 将更新方法更改为smth,如下所示:

    def update
      super do |format|
        redirect_to user_path(@user), notice: "Your notice message" and return if resource.valid?
      end
    end