コントローラー アクションに固有の情報 (チェックボックス) を含む form_tag パネルを作成しています。このアクションは、「routes.rb」で次のように設定されます。
resources :students do
collection do
get :send_student_report_pdf
end
end
このセットアップは、link_to からアクションを呼び出すと完全に機能します。
<%= link_to "Download PDF Report", :action => 'send_student_report_pdf', :controller => 'students'%>
ただし、で使用すると、次のform_tag
エラーが発生し続けます。
Routing Error
No route matches "/students/send_student_report_pdf"
form_tag
私が持っているコードはここにあります:
<%= form_tag :controller => 'students', :action => 'send_student_report_pdf', :method => 'get' do %>
<%= label_tag "Include columns" %> <br>
<%= check_box_tag "first_name", params[:first_name], checked = true %> <%= label_tag "First Name" %><br>
<%= submit_tag "Download PDF Report", :action => 'send_student_report_pdf', :controller => 'students'%>
<% end %>
私はそれにURL、パスを与えようとしました:
<%= form_tag send_student_report_pdf_students_path, :method => 'get' do %>
しかし、それは一貫して同じRouteエラーを私に与えてきました(アクションがroutes.rbにまったく存在しないかのように、link_to
代わりに使用して完全に機能します)form_tag submit
コントローラーのアクションのコードは次のとおりです。基本的にはファイルを送り返します。
def send_student_report_pdf
@students = search_sort_and_paginate
puts "params[:first_name] = ", params[:first_namea]
send_data(generate_pdf_report(@students), :filename => "report.pdf", :type => 'application/pdf')
end
ここで何かが足りないことに気付いたら、助けてください。
どうもありがとうございました、
よろしく、