繁体   English   中英

Rails 4未定义的本地变量或下载方法链接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM