如何为每个动作渲染两个html文档?

时间:2009-09-02 16:14:17

标签: ruby-on-rails

用户按下保存按钮后,我需要同时呈现新页面和 render_to_string 预览此页面。将其存储到DB中。

所以我得到了DoubleRenderError异常。

我尝试存根@performed?

但是在第一次渲染后清除Layouts。有什么想法吗?

感谢您的回答!

2 个答案:

答案 0 :(得分:1)

我在同一个请求中成功使用了render_to_string和render。

我认为你需要确保先调用render_to_string。 YMMV

答案 1 :(得分:0)

我可能会使用机架中间件来做这件事。

class ResponseLoggerMiddleware
    def initialize(app)
        @app = app
    end

    def call(env)
        status, headers, response = @app.call(env)
        ... save your response to the database ...    
        [status, headers, response]
    end
end

您可以像这样安装:

# environment.rb
Rails::Initializer.run do |config|
    ...
    config.middleware.use ResponseLoggerMiddleware
end