Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-使用_Ruby On Rails_Controllers_Respond With - Fatal编程技术网

Ruby on rails Rails-使用

Ruby on rails Rails-使用,ruby-on-rails,controllers,respond-with,Ruby On Rails,Controllers,Respond With,我正在使用此第三方控制器: class LibController def update # 29 lines of code respond_with resource end end 我想做一些事情,而不是在结尾用回复。但我不想只是将所有29行复制/粘贴到MyController.update。不幸的是,我无法找到一种在其他地方渲染或重定向的方法: class MyController < LibContr

我正在使用此第三方控制器:

   class LibController

      def update
        # 29 lines of code
        respond_with resource
      end

   end
我想做一些事情,而不是在结尾用回复。但我不想只是将所有29行复制/粘贴到
MyController.update
。不幸的是,我无法找到一种在其他地方渲染或重定向的方法:

   class MyController < LibController

     def update
       super
       redirect_to somewhere_else
     end

   end
class MyController
我得到了一个
DoubleRenderError:Render和/或redirect在此操作中被多次调用
。我认为这是因为
立即用
调用
渲染
响应\u。有没有办法阻止/防止这种情况


谢谢

我认为你在做一个双重重定向。 尝试删除更新方法上的一个重定向

检查下面的示例代码,该代码在使用respond\u with时显示等效响应

def create
  @user = User.new(params[:user])
  flash[:notice] = 'User was successfully created.' if @user.save
  respond_with(@user)
end
这与:

def create
  @user = User.new(params[:user])

  respond_to do |format|
    if @user.save
      flash[:notice] = 'User was successfully created.'
      format.html { redirect_to(@user) }
      format.xml { render xml: @user, status: :created, location: @user }
    else
      format.html { render action: "new" }
      format.xml { render xml: @user.errors, status: :unprocessable_entity }
    end
  end
end

谢谢你,奥尔德里安。我想知道是否我唯一的选择是从第三方方法复制/粘贴整个方法,只是为了替换最后一行。我认为您只需要使用控制器中的重定向方法,并尝试删除“类LibController”中的respond_。对不起,我只是猜测可能的方式,因为我没有看到您的完整代码。尝试操纵它,重要的是只使用一个重定向。