Jak renderować szablon erb w łańcuchu akcji?

Potrzebuję ciąg html (coś w tym stylu)"<html><body>Hello World</body></html>") do celów faksowania.

Napisałem go w pliku erb seprate:views/orders/_fax.html.erb i spróbuj renderować erb w akcji:html_data = render(:partial => 'fax').

Oto część kontrolera, która porusza ten problem:

  respond_to do |format|
      if @order.save   
        html_data = render(:partial => 'fax')
        response = fax_machine.send_fax(html_data)
        ......

        format.html { redirect_to @order, notice: 'Order was successfully created.' }
        format.json { render json: @order, status: :created, location: @order }
      else  
        format.html { render action: "new" }
        format.json { render json: @order.errors, status: :unprocessable_entity }
      end
    end

Dał mi AbstractController :: DoubleRenderError jak poniżej:

AbstractController::DoubleRenderError in OrdersController#create

Render and/or redirect were called multiple times in this action. Please note that you may only call render OR redirect, and at most once per action. Also note that neither redirect nor render terminate execution of the action, so if you want to exit an action after redirecting, you need to do something like "redirect_to(...) and return".

Jak rozwiązać ten problem?

questionAnswers(4)

yourAnswerToTheQuestion