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_。对不起,我只是猜测可能的方式,因为我没有看到您的完整代码。尝试操纵它,重要的是只使用一个重定向。