Отсутствуют параметры формы Ruby on Rails - PullRequest
0 голосов
/ 26 января 2012

У меня есть форма, которая принимает значение диапазона дат для создания отчета с помощью Jasper Reports

Отчеты / statistic.html.erb

<%= form_tag("/reports/statistic", :method => "post", :target => "_blank") do %>

  <%= label_tag(:from_date, "From Date:") %>
  <%= text_field_tag :from_date %>

  <%= label_tag(:to_date, "To Date:") %>
  <%= text_field_tag :to_date %>

  <br><br>
  <%= submit_tag("Generate Report") %>
<% end %>

и это reports_controller.rb

def statistic

    @details=StatisticTable.where(:dateindb => (params[:from_date])..(params[:to_date])

    send_doc(render_to_string(
        :template => 'reports/statistic.xml', :layout => false),  #source of xml and template
        '/statistic/detail', #xml xpath2 query in reports
        'statisticreport',   #name of .jasper file
        'StatisticReport',   #name of pdf file
        'pdf')
  end

Когда я нажал кнопку «Создать отчет», отчет красиво отобразится в программе просмотра PDF в новом окне. Но когда я пытаюсь сохранить PDF-файл, он становится пустым, а значение даты возвращается как ноль.

Кроме того, я следовал этому уроку http://oldwiki.rubyonrails.org/rails/pages/HowtoIntegrateJasperReports, который объясняет, откуда появился метод send_doc.

Я не думаю, что проблема в Джаспере, потому что, если я заменю это

@details=StatisticTable.where(:dateindb => (params[:from_date])..(params[:to_date])

с заранее заданным значением даты

@details=StatisticTable.where(:dateindb => ('2011-12-01')..('2011-12-31')

отчет отображается и отлично сохраняется. Итак, я предполагаю, что что-то не так с моей настройкой переменных Ruby on Rails?

Спасибо!

1 Ответ

1 голос
/ 27 января 2012

Я решил это, изменив только метод формы на GET

<%= form_tag("/reports/statistic", :method => "get", :target => "_blank") do %>

  <%= label_tag(:from_date, "From Date:") %>
  <%= text_field_tag :from_date %>

  <%= label_tag(:to_date, "To Date:") %>
  <%= text_field_tag :to_date %>

  <br><br>
  <%= submit_tag("Generate Report") %>
<% end %>

и после того, как отчет сгенерирован в PDF, я нажал Сохранить, и PDF отлично сохранил все данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...