некоторая информация, почему я такая ситуация:Сохранить форму и сделать PDF
в моем приложении, пользователь может изменить некоторые данные в форме и хранить его. он также может генерировать PDF с этими изменениями. пользователю пришлось сохранить его, снова открыть диалоговое окно и теперь можно распечатать эти изменения.
Это нехороший способ. я изменил его на одно действие. теперь пользователь может сохранить изменения, форма будет закрыта. если пользователь хочет распечатать изменения , он просто может нажать кнопку печати, измененные данные будут сохранены в , после чего документ будет напечатан.
У меня было 2 кнопки в моей форме, которые будут отправлены через ajax remote: true
. Одна кнопка - кнопка отправки по умолчанию, чтобы сохранить изменения и закрыть форму.
Другая кнопка value=print
должна сохранять изменения, визуализировать pdf-файлы, отправлять их в браузер и закрывать форму.
это работает очень хорошо. но выглядит не очень хорошо для меня.
форма
<%= form_for @product, remote: true do |f| %>
<!-- some boring fields -->
<button class="btn btn-default glyphicon glyphicon-print" type="submit" value="pdf" name="print"></button>
<button type="button" class="btn btn-default" data-dismiss="modal"><%=t('forms.close')%></button>
<button class="btn btn-primary" type="submit"><%=t('forms.save')%></button>
<% end %>
там вы можете увидеть, как кнопки отправки.
действия контроллера
def show
# just generate the pdf and render it to browser
# render_pdf will perform the send_file method with default :attachment
render_pdf PdfEngine.render params
end
def update
@product = Product.find params[:id]
# do the update logic
render :create
end
парциальное create.js.erb
<% if params[:print] %>
location.href='<%=product_path(@product)%>'
<% else %>
// do some blinky stuff
// close the form and so one
<% end %>
есть лучший способ хранить и хранить и визуализации PDF?
Я добавил дополнительную информацию. фактически я отправляю документ pdf в браузер и закрываю форму. оно работает. но я думаю, должен быть лучший способ сделать это – rob
'redirect_to' хотите работать. его запрос ajax. метод show просто выполняет pdf. больше ничего. Мне не нужен он для вывода html. тип mime уже зарегистрирован. перенаправление будет выполняться за кулисами, поэтому ничего не произойдет. это немного сложно, я думаю, – rob
Ах, если это удаленное действие (то есть ajax), то хорошим способом справиться с этим было бы отобразить частичное, которое имеет ссылку на документ, и использовать результат для замены div на страницы: поэтому после загрузки ссылки на документ появляется на странице. –