Мои пользователи могут добавить в инвентарь, а затем распечатать весь инвентарь в ярлыки, используя PDF. Эта часть работает, теперь мне нужно создать форму, чтобы получить диапазон элементов для печати. Параметры приходят, и все мои переменные верны, когда я проверяю их с помощью byebug. Первая проблема заключается в том, что моя форма хочет опубликовать вместо получения
Нет совпадений маршрута [POST] "/excute_print_tags.pdf". Теперь, если я добавляю маршрут, код запускается, а вывода нет, и я получаю это в командной строке
Inventory Load (0.4ms) SELECT "inventories".* FROM "inventories" WHERE "inventories"."user_id" = $1 AND "inventories"."print_ref" >= $2 AND "inventories"."print_ref" < $3 [["user_id", 1], ["print_ref", 4], ["print_ref", 7]]
↳ app/pdfs/inventory_landscape_pdf.rb:18:in `inventory_number'
Rendering text template
Rendered text template (Duration: 0.0ms | Allocations: 2)
Sent data Westcoast Board and Ski_myskiswapinvenotry2020-08-05 14:51:40 -0700.pdf (0.9ms)
Completed 200 OK in 65227ms (Views: 0.6ms | ActiveRecord: 8.6ms | Allocations: 220205)
код формы внутри views / inventory / print_tags. html .erb
<%= form_with url: excute_print_tags_path(format: "pdf") do |form| %>
<div class="flex flex-wrap -mx-3 mb-2">
<div class="w-full md:w-1/3 px-3 mb-6 md:mb-0">
<div class="form-group">
<%= form.label :print_ref1 %>
<%= form.number_field :print_ref1, class: "form-control" %>
</div>
</div>
<div class="w-full md:w-1/3 px-3 mb-6 md:mb-0">
<div class="form-group">
<%= form.label :print_ref2 %>
<%= form.number_field :print_ref2, class: "form-control" %>
</div>
</div>
<div class="w-full md:w-1/3 px-3 md:mb-0 mt-8 ">
<div class="form-group">
<%= form.button class: "btn btn-primary" %>
</div>
</div>
</div>
<% end %>
Затем внутри controllers / inventory_contoller
def excute_print_tags
@print_ref1 = params[:print_ref1]
@print_ref2 = params[:print_ref2]
@filtered_inventory = @user_inventory.where(print_ref: @print_ref1...@print_ref2)
byebug
respond_to do |format|
format.html
format.pdf do
pdf = InventoryLandscapePdf.new(@filtered_inventory)
send_data pdf.render, filename: "#{current_user.company}_myskiswapinvenotry#{Time.new}.pdf",
type: "application/pdf",
disposition: "inline"
end
end
end
У меня также есть попытался добавить приведенный выше код в раздел print_tags инвентаризации и позвонить самому себе. Та же проблема ... Я думаю, это как-то связано с тем, как устроены мои формы, и позволяет отправлять их только как сообщение, а не как получение, технически это просто поиск, верно? Я попытался найти то, что нашел, но это тоже не решило эту проблему. Любая помощь приветствуется.