Bir denetleyici eylemine özgü bilgileri (onay kutuları) içeren bir form_tag paneli yapıyorum. şöyle Bu eylem "routes.rb" içinde kurulur:sorunları ile denetleyici eylemi için form_tag ile form_tag sorunları
resources :students do
collection do
get :send_student_report_pdf
end
end
Bir link_to gelen eylem çağırdığınızda mükemmel çalışır Bu kurulum: Bir kullanmış Ancak
<%= link_to "Download PDF Report", :action => 'send_student_report_pdf', :controller => 'students'%>
form_tag
, bana bu hatayı veriyor tutar:
Routing Error
No route matches "/students/send_student_report_pdf"
Ben form_tag
kod buradadır:
<%= 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 %>
ben o url vererek çalıştık, yol gibi:
<%= form_tag send_student_report_pdf_students_path, :method => 'get' do %>
Ama eylem routes.rb içinde hiç yok sanki sürekli (bana aynı Rota hatayı vermektedir , mükemmel Burada denetleyicisi eylem kodudur yerine form_tag submit
ait link_to
kullanarak çalışır halde, bu temelde bir dosya geri gönderir.
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
Burada bir şey kaçırdığımı görürseniz, lütfen bana yardımcı olun.
ÇokSaygılarımızla,
senin form_for içinde:method => 'get'
kısım url_for_options karma içindedir
çalıştırarak olmaz Vay, bu harika çalışıyor! Yardımınız için çok teşekkürler. "Form_tag" parametrelerini (check_box_tag açma/kapama, text_field_tag değerleri gibi) denetleyicilerle paylaşma hakkında daha küçük bir sorum var. Denedim: <% = check_box_tag "first_name", params [: first_name], checked = true%>. Ama kontrolörde "param [" first_name] "değerini almayı denediğimde, hiçbir şey alamadım. Çok teşekkürler, orijinal cevabınız bana gerçekten yardımcı oldu! – Dominic
Geliştirme logunuzu izleyin. Bir eyleme hangi paramlar gönderildiğini anlatarak, nasıl referans göstermeniz gerektiğini görmenize yardımcı olacaksınız: – idlefingers
Cool: check_box_tag koduna değer => params [: first_name] ekleyerek çözdüm. Şimdi params [: first_name ] kontrolör eyleminde görünür.Yardımınız için teşekkürler. – Dominic