У меня есть форма, которая принимает значение диапазона дат для создания отчета с помощью 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?
Спасибо!