2009-09-02 24 views
2

用戶按下保存按鈕後,我需要渲染新頁面和render_to_string在同一時間預覽此頁面。將其存儲到數據庫中。如何爲每個操作呈現兩個html文檔?

所以我得到了DoubleRenderError異常。

我嘗試存根@performed?

但第一次渲染後清除佈局。有任何想法嗎?

謝謝你的回答!

+0

我看到幾個解決方案: - 創建回調到其他行動 - 創建單獨的控制器旋進這個認定書 – 2009-09-02 16:26:13

+0

幾件事情浮現在腦海中 - 你能說更多關於爲什麼要在數據庫中存儲頁面預覽嗎? – austinfromboston 2009-09-02 16:28:42

+0

很高興! 我應該發送這個HTML作爲電子郵件給用戶。所以我應該渲染這個頁面的預覽。 – 2009-09-03 08:47:39

回答

1

我已經在同一個請求中成功使用了render_to_string和render。

我認爲你需要確保你先調用render_to_string。 YMMV

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 
相關問題