ActionController :: UnknownFormat(format.csv)

Abh*_*bhi 2 csv ruby-on-rails

我知道这个问题已被提出,但是对于不同的格式.我担心的是format.csv.

我的尝试

路线

match '/something.csv' => 'admin#something', via: :get
Run Code Online (Sandbox Code Playgroud)

调节器

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
Run Code Online (Sandbox Code Playgroud)

当我点击时,它会抛出ActionController :: UnknownFormathttp://localhost:3000/admin/something.csv

编辑

我跟随RailsCast,但没有找到改变像Eg这样的路线的建议: - defaults: { format: :csv }(如Kajal Ojha的回答中所建议的那样)

kaj*_*jha 6

我今天遇到了同样的错误,它通过在路由中提供默认格式来解决.

在你的情况下它是

match '/something.csv' => 'admin#something', via: :get, defaults: { format: :csv }
Run Code Online (Sandbox Code Playgroud)

  • 可能,您使用的链接在末尾的括号中没有以下内容... admin_something_path(:format =>"csv")...所以路由器可能正在猜测html(您的控制器只有csv,没有html选项) ).路由修复中的默认csv格式有效,因为它设置了它,而不是在该路由的链接中显式声明. (2认同)