2013-08-02 4 views
3

테이블 레코드를 CSV 형식으로 내보내려고합니다. 그게 내 컨트롤러 ('사용자') 작업 (예 : 'export_csv')에 ID의 배열을 전달하고 싶습니다.레일에 배열로 경로를 만드는 방법

나는이

resources :users do 
    collection do 
    get "/export_csv/data", action: :export_csv, as: :export_csv 
    end 
end 

처럼 내 길을 만들었습니다 그리고 내 LINK_TO 태그에 나는이

/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&... 

인해 같은 URL을 생성이

export_csv_users_path(@data) 

처럼 전달하고있다 레일이 오류를 생성 함

내가 알고 싶은 3,691,363,210
406 Not Acceptable 

가 내가 더 좋은 방법을 제안하십시오이

/users/export_csv/data?format[]=[1,2,3,4,...] 

같은 경로를 통해 뭔가를 ID의 배열을 통과 할 수있는 모든 방법입니다.

답변

2

를 생성하기 위해 분할 가장 좋은 방법은 게시물 요청의 데이터와 같은 매개 변수를 전달하는 것입니다.

은 (또한 방법 및 전화)로 변환하려고 다음에 ID의 수보다 다음과 같은 100 정도하는 경우

resources :users do 
    collection do 
    post "/export_csv/data", action: :export_csv, as: :export_csv 
    end 
end 
+0

게시 방법에서 라우팅 오류가 발생합니다 -> 경로가 일치하지 않습니다 "/ users/export_csv/데이터 " – Jeet

+0

좋아, 내 링크에 메서드 => 게시물을 정의하지 못해서 내 문제를 해결했습니다. – Jeet

+0

안녕하세요, Jeet, 마침내 당신이 무엇을 알고 있는지 알려주시겠습니까? –

2

url의 매개 변수로 배열을 전달할 수 없습니다. 보기에서

: 당신이 배열을 전달하려는 경우, 당신은 문자열을 형성하기 위해 배열 값을 결합 할 수 있습니다

= link_to 'url_name', export_csv_users_path(:data => @data.join(',')) 

는 그런 다음 컨트롤러에서 그것을 얻을 수 및 배열을

array_element = params[:data].split(',') 
+0

감사합니다 아만 명,이 – Jeet

+1

이 실 거예요 작업 작동합니다. http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers 만약 그것이 그 이상이 될 것이라고 생각한다면, 게시로 변환하십시오. 오랫동안 항상 싫어 야합니다. –

+0

@sahildhankhar : 당신이 맞을지도 모르지만 배열 요청서를 통해 배열 형식으로 매개 변수를 보낼 수는 없습니다. –

관련 문제