ActionController::UnknownFormat (format.csv)

4
我知道这个问题已经被问过了,但是针对不同的格式。我的关注点在于 format.csv我的尝试 路线
match '/something.csv' => 'admin#something', via: :get

控制器

def something
   respond_to do |format|
     format.csv { render text: ["a", "b"].to_csv } #Just a try

     #format.csv { render csv: ["a", "b"].to_csv }
   end
end

当我访问http://localhost:3000/admin/something.csv时,它会抛出ActionController::UnknownFormat错误。 编辑 我正在按照RailsCast中的指导进行操作,但找不到更改路由的建议,例如:defaults: { format: :csv }(正如Kajal Ojha的答案中建议的那样)。
1个回答

8
今天我遇到了同样的错误,通过在路由中提供默认格式解决了问题。
在你的情况下,应该是这样的:
match '/something.csv' => 'admin#something', via: :get, defaults: { format: :csv }

2
很可能,您正在使用的链接末尾没有括号中的以下内容... admin_something_path(:format => "csv") ...因此路由器可能会猜测html(您的控制器只有csv,没有html选项)。路由修复中的默认csv格式可行,因为它在未显式声明到该路由的链接中时设置了此选项。 - JosephK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接