2009-09-02 3 views
2

사용자가 저장 버튼을 누르면, 새 페이지 새 페이지를 렌더링하고 렌더 _to_string 미리보기가 동시에 필요합니다. 그것을 DB에 저장합니다.작업 당 두 개의 HTML 문서를 어떻게 렌더링합니까?

그래서 DoubleRenderError 예외가 발생했습니다.

나는 스텁을 시도합니까?

하지만 첫 번째 렌더링 후에 레이아웃이 제거됩니다. 어떤 아이디어?

답변 해 주셔서 감사합니다.

+0

을 내가 몇 가지 솔루션을 참조하십시오 을 - 다른 동작 에 콜백을 만들기 - –

+0

몇 가지가 마음에 와서이 갈라진를 전진 할 수있는 별도의 컨트롤러 만들기 - 왜 데이터베이스에 페이지 미리보기를 저장하려고하는지 더 자세히 말할 수 있습니까? – austinfromboston

+0

즐거움과 함께! 이 html을 사용자에게 전자 메일로 보내야합니다. 그래서이 페이지의 미리보기를 렌더링해야합니다. –

답변

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 
관련 문제