Rails设置:格式在(ActionController)_path(@ user,format:=>“csv”)?

时间:2013-12-19 00:57:21

标签: csv ruby-on-rails-3.2 link-to

我正在关注rails cast以添加为我们的管理区域中的不同内容下载csv的功能。当我转到网址时,我有文件下载,所以我正在尝试为它设置链接,我遇到了试图设置路径请求格式的问题。我认为我的主要问题是我正在使用格式传递路径的任务对象。因为在轨道投射中它只是它

<%= link_to "CSV", product_path( format: "csv")%>

但是尝试设置这样的格式会给我带来相同的错误网址(如下图所示,尝试不同的设置格式)。我已经尝试了几种不同的方法,并试图找到关于_path可以采用的参数的文档但是我迄今为止尝试过的各种方式设置格式都没有用。 (我很确定这是Rails 3.2特有的问题)

这是我的确切question,但一个答案不起作用,如下所示。答案对于提出问题的人来说不起作用......

<%= link_to "Users csv", admin_missions_path(@admin_mission, :format => :csv) %>

但这会将链接网址转换为:

http://localhost:3000/admin/missions.52aa6bc61858f041b1000010

当它需要时:

http://localhost:3000/admin/missions/52aa6bc61858f041b1000010.csv

当我转到以.csv结尾的正确网址时,会自动下载.csv,所以我知道一切正常。我只是无法弄清楚如何使链接的格式工作,所以它下载文件,而不是去第一个错误的网址...

任何见解或帮助都会大大增加。

谢谢,

艾伦

1 个答案:

答案 0 :(得分:0)

好的,所以这不是一个很好的解决方案...但在我的情况下,我想要的链接只是将.csv添加到该页面的url的末尾(处理.csv上的内容)页)

所以我只是使用了request_url并添加了.csv后缀...看起来有点猛拉给我,但它有效......

<%= link_to "Users csv", request.original_url+".csv" %>

引用此question以获取在不同版本的Ruby中获取当前URL的不同方法的列表。