2012-03-15 9 views
14

Tôi đang tiêu thụ một API mà hy vọng tôi làm các yêu cầu theo định dạng sau:Rails - Parameter với nhiều giá trị trong URL khi tiêu thụ một API thông qua Active Resource

?filter=value1&filter=value2 

Tuy nhiên, tôi đang sử dụng Active Resource và khi tôi chỉ định : thông số băm băm, tôi không thể làm cho cùng một thông số xuất hiện hai lần trong URL mà tôi tin là chính xác. Vì vậy, tôi không thể làm điều này:

:params => {:consumer_id => self.id, :filter => "value1", :filter => "value2" }, vì chỉ mục bộ lọc thứ hai của hàm băm sẽ bị bỏ qua.

Tôi biết tôi có thể vượt qua một mảng (mà tôi tin là cách chính xác để làm việc đó) như thế này:

:params => {:consumer_id => self.id, :filter => ["value1","value2"] } 

nào sẽ tạo ra một URL như:

?filter[]=value1&filter[]=value2 

nào với tôi có vẻ ok, nhưng API không chấp nhận nó. Vì vậy, câu hỏi của tôi là:

Cách chính xác để truyền tham số có nhiều giá trị là gì? Có ngôn ngữ cụ thể không? Ai quyết định điều này?

+0

Tôi hơi bối rối. Làm cách nào để "bộ lọc" có 2 giá trị khác nhau? – fatfrog

+0

Xin lỗi ý tôi là, nó giống như cách API được viết, giá trị bộ lọc sẽ chỉ bị ghi đè bởi giá trị cuối cùng được chuyển. – fatfrog

+0

@fatfrog Tôi không biết làm thế nào các API được viết, tôi chỉ lấy dữ liệu theo thông số kỹ thuật của họ. Nhưng bạn biết đấy, API có thể nhận được hai giá trị khi chúng được truyền như? Filter = value1 & filter = value2 – Nobita

Trả lời