0
보고서를 생성하는 기능이있는 레일스 애플리케이션이 있습니다.매개 변수를 전달하는 우아한 방법
보고서를 생성하기 전에, 사용자는
# GET /sales_activities/generate_report
def generate_report
@start_date = Date.civil(params[:range][:"startDate(1i)"].to_i,params[:range][:"startDate(2i)"].to_i,params[:range][:"startDate(3i)"].to_i)
@end_date = Date.civil(params[:range][:"endDate(1i)"].to_i,params[:range][:"endDate(2i)"].to_i,params[:range][:"endDate(3i)"].to_i)
@end_date_inclusive = @end_date + 1.day
@sales = SalesActivity.find(:all,
:select => [:salesperson_id],
:conditions => {:created_at => @[email protected]_date_inclusive, :code => [5]},
:group => :salesperson_id)
# <Skip the boring code>
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @report }
format.json { render :json => @report }
end
end
그리고 다음,
가<%= form_tag({:action => :generate_report}, :multipart => true) do %>
<h3>Date range is inclusive</h3>
<b>Start Date</b><br />
<%= date_select :range, :startDate, options = {:order => [:day, :month, :year]} %
<b>End Date</b><br />
<%= date_select :range, :endDate, options = {:order => [:day, :month, :year]} %>
<%= submit_tag "Generate Report", :disable_with => 'Reporting...' %>
<% end %>
지지 코드는 그 리포트를 생성하고,보고를위한 기간을 지정하는 형태로 제시 보기는 일반적인 방법으로 렌더링됩니다. 사용자가 보는 것을 좋아하면 보고서를 CSV 형식으로 내보낼 수 있습니다.
현재 내 보낸 내보내기에 대해 동일한 보고서를 생성하는 메서드에 지정된 범위를 전달하는 데 다음 코드가 있지만 매우 길고 오류가 많지 않으며 긴 URL로 표시되지 않습니다.
<h2>Regulatory Report</h2>
<h4>Reporting Period from <%= @start_date.strftime('%d/%m/%y') %> to <%= @end_date.strftime('%d/%m/%y') %></h4>
<%= link_to image_tag("Buttons/ExportReport.png", :border => 0), report_export_sales_activities_path(:start_date_str => @start_date, :end_date_str => @end_date) %>
제 질문은 이러한 매개 변수를 내보내기 방법에 전달하는 더 좋은 방법이 있습니까? 고맙습니다.
에 의해 생성 된 PARAMS 형식을 사용하게됩니다. http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html 그게 당신이 원하는 것입니까? –