我想以CSV格式导出表格记录。因为我想将ID数组传递给我的控制器(比如'用户')动作(比如'export_csv')。
我已经创建了这样的路线
resources :users do
collection do
get "/export_csv/data", action: :export_csv, as: :export_csv
end
end
在我的link_to标签中,我正在传递它
export_csv_users_path(@data)
哪个生成这样的网址
/users/export_csv/data?format[]=1&format[]=2&format[]=3&format[]=4&format[]=5&format[]=6&format[]=7&format[]=8&format[]=9&format[]=10&format[]=11&format[]=12&format[]=13&format[]=14&format[]=15&format[]=16&format[]=17&format[]=18&format[]=19&format[]=20&format[]=21&format[]=22&format[]=23&format[]=24&format[]=25&format[]=26&format[]=27&format[]=28&format[]=29&...
由于哪个rails生成错误
406 Not Acceptable
我想知道是否有任何方法可以通过路径传递id数组,类似这样的
/users/export_csv/data?format[]=[1,2,3,4,...]
请建议更好的方法。
答案 0 :(得分:2)
您无法在url中将数组作为参数传递。如果要传递数组,可以组合数组值以形成字符串:
在视图中:
= link_to 'url_name', export_csv_users_path(:data => @data.join(','))
然后你可以在控制器中获取它并拆分以生成数组
array_element = params[:data].split(',')
答案 1 :(得分:2)
最好的方法是在post请求中传递这些参数作为数据。
尝试将其转换为(以及您对该方法的调用):
resources :users do
collection do
post "/export_csv/data", action: :export_csv, as: :export_csv
end
end