2015-10-27 2 views
1

В мой контроллер у меня есть действие:button_to для визуализации Формат PDF

def booking_sheet_report 
    @groups = Group.all.order('priority DESC') 
    respond_to do |format| 
    format.html 
    format.csv 
    format.pdf 
    end 
end 

и с точки зрения я хочу, чтобы пользователь сможет открыть (скачать) на format.pdf при нажатии на button_to элемент (У меня есть view_sheet_report.pdf.erb). С link_to (<%= link_to 'PDF', booking_sheet_report_path(format: :pdf) %>) работает нормально.

Я попробовал следующее без успеха:

<%= button_to "PDF", {action: "booking_sheet_report", :form => { "data-type" => "pdf" }}, {class: 'btn-u', method: :get} %> 


<%= button_to "PDF", {action: "booking_sheet_report(format: :pdf)", :form => { "data-type" => "pdf" }}, {class: 'btn-u', method: :get} %> 

Второй дает ошибку: No route matches {:action=>"booking_sheet_report(format: :pdf)", :controller=>"reports", :form=>{"data-type"=>"pdf"}}

Любой ключ, как это возможно, или что я делаю не так?

Изменить: один соответствующий путь является get 'booking_sheet_report' => 'reports#booking_sheet_report'

+1

Что такое ошибка? Обновите его в своем вопросе. – Pavan

+0

@Pavan обновлен. –

+0

Показать файл маршрутов. –

ответ

1

No route matches {:action=>"booking_sheet_report(format: :pdf)", :controller=>"reports", :form=>{"data-type"=>"pdf"}}

<%= button_to "PDF", {action: "booking_sheet_report(format: :pdf)", :form => { "data-type" => "pdf" }}, {class: 'btn-u', method: :get} %> 

Проблема с выше кода вы закрываете круглые скобки (}) на изнаночную сторону. Я имею в виду, что закрывающая скобка для :action => помещена с другой стороны. Поэтому он рассматривает все это как url option, и это сообщается как ошибка маршрута. Также использование круглых скобок всегда сложно.

button_to(name = nil, options = nil, html_options = nil, &block) public

Следующие должны работать

<%= button_to "PDF", booking_sheet_report_path(format: :pdf), class: 'btn-u', method: :get, :form => {"data-type" => "pdf" } %> 
Смежные вопросы