Rails:GET或POST获取ID列表?

时间:2012-07-15 09:18:00

标签: ruby-on-rails rest

我有一个巨大的项目列表,旁边有复选框,允许用户选择要打印的项目。

当用户选择了一堆项目,然后点击打印时,我发送的GET请求中包含在查询字符串中建立的代码:

/registration_codes.pdf?ids[]=1&ids[]=5&ids[]=18...

问题是,当它变得太长时会抛出一个异常,说查询字符串太长。此外,它该死的丑陋。

显然这是GET的一个问题,但是如果我要遵循'RESTful'规则,POST,甚至是PUT或DELETE都没有意义。

任何人都可以在RESTful时提出更好的方法来处理这个问题,还是应该破坏规则并改为执行POST?

1 个答案:

答案 0 :(得分:0)

显而易见的:

  • 将“ids [] =”更改为“i =” - 它可以为您节省+ - 50%的空间。
  • 使用不同的编码ids[]=1,5,18,...

似乎如果你有那么多的复选框......也许你做错了。

还有许多其他压缩数据的方法:以十六进制或base64表示形式编码的位图。甚至疼痛位图可能就足够了并具有确定性长度:

id=1000100000000010000...

与十六进制相同

id=880fa0...