在Rails中的called和caller方法中使用render时的DoubleRenderError

时间:2016-01-15 16:36:38

标签: ruby-on-rails

我是Ruby on Rails的新手。

此代码返回DoubleRenderError

class PostapisController < ApplicationController
    def method1
       method2()
       render json: {:success: false}
    end 

    def method2
       render json: {:status => 'ok'} and return
    end 
end

为什么会返回DoubleRenderError?如果我仍然希望method1()method2()同时拨打render,我该如何解决?

1 个答案:

答案 0 :(得分:1)

&#34;渲染&#34;和&#34; redirect_to&#34;是生成对服务器收到的请求的响应的两种方法。服务器只能为每个请求提供一个响应,因此您无法呈现两次。

在您的情况下,您应该能够理解发送{:success: false}响应并发送{:status => 'ok'}响应是没有意义的:它必须是一个或者另一个,对吗?这不是一个东西,它只是一个网络的东西。每个请求一个响应。

我不知道你想要实现什么,所以除了告诉你在开始使用Rails之前阅读一些关于Rails的更基本的东西之外,不能再进一步建议。< / p>