![](/img/trans.png)
[英]Undefined local variable or method - download a file - Ruby on Rails
[英]Rails 4 Undefined Local Variable or Method for Download link
我不断获得#<#:0x0000376c505098>的未定义局部变量或方法`orders_download_template_path'
使用以下代码。 我也尝试过download_template_path和@orders_download_template_path(最后一个不会引发错误,但也不会执行任何操作)。
Routes.rb:
resources :orders do
collection do
post :import
get :upload_page, as: 'upload_page'
get :search, as: 'search'
get :csv_report, as: 'csv_report'
get :overdue_csv_report, as: 'overdue_csv_report'
get :download_template, as: 'download_template'
end
end
orders_controller.rb:
def download_template
send_file Rails.root.join('public/upload_template.csv'),
type: 'application/csv',
x_senfile: true
end
视图:
<%= link_to "Blank Upload Template", orders_download_template_path %>
该文件已放在/ public下
根据Rails路由指南,您会遇到语法错误。
http://guides.rubyonrails.org/routing.html#adding-collection-routes
这应该解决它
download_template_orders_path
如果您在控制台上运行rake routes
,则应该看到以下行(以及其他内容):
download_template_orders GET /orders/download_template(.:format) orders#do
如您所见,如果您在COLLECTION上设置此路由,则生成的路径将为download_template_orders_path。
如果将其设置在成员上,将会看到以下内容:
download_template_order GET /orders/:id/download_template(.:format) orders#
回答您的问题,正确的路径将是download_template_orders_path
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.