Генерировать PDF, если объект сохраняется

Я использую драгоценный камень wicked_pdf для создания PDF-файла:

Я хочу генерировать PDF, только если объект сохраняется / сохраняется в базе данных:

Что-то вроде этого:

def new
  @invoice = Invoice.new
  respond_to do |format|
    format.html # new.html.erb
  end
end

def create
  @invoice = Invoice.new(invoice_params)
  respond_to do |format|
    if @invoice.save
      format.html { redirect_to invoice_path(@invoice), notice: "Yesss!") }
    else
      format.html { render action: new, :alert => "Oops :(" }
    end
    format.pdf do
      @example_text = "exampletext"
        render :pdf => "file_name",
               :template => 'path/to/template'
    end
  end
end

Но с этим кодом реагировать только на HTML. Я хочу создать PDF внутри:

if @invoice.save
  #generate the pdf here
  format.html { redirect_to invoice_path(@invoice), notice: "Yesss!") }
else

Как я могу это сделать, Могу ли я использовать обратный вызов?

1 ответ

Решение

Удалить respond_to блокировать так:

def create
...
  if @invoice.save
   render :pdf=>"file_name",
   :template=>'/path/to/template'
  else
    render action: "new", :alert=>"Oops :("
  end
 end
Другие вопросы по тегам