button_to 渲染pdf格式
button_to to render pdf format
在我的控制器中我有以下操作:
def booking_sheet_report
@groups = Group.all.order('priority DESC')
respond_to do |format|
format.html
format.csv
format.pdf
end
end
在视图中,我希望用户在单击 button_to 元素时能够打开(下载)format.pdf(我有一个 booking_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'
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" } %>
在我的控制器中我有以下操作:
def booking_sheet_report
@groups = Group.all.order('priority DESC')
respond_to do |format|
format.html
format.csv
format.pdf
end
end
在视图中,我希望用户在单击 button_to 元素时能够打开(下载)format.pdf(我有一个 booking_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'
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" } %>