使用不同的值传递相同参数的列表

时间:2014-05-29 22:18:11

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 addressable-gem

所以基本上我创建了一些客户端方法,这些方法会创建一个命中外部服务的路径。 另外,我使用的是可寻址的宝石。

以下是一个例子:

def get_member(ord_id, member_id)
  path = '/organizations/{ord_id}/people/{member_id}'
  hash = get(path, member_id: member_id, org_id: ord_id)

  { Member.custom_deserialize_method(hash) }
end

如果路径如上所述简单,则此方法有效。

现在我想为不同的路径编写一个方法,它可以像这样进行批量查找:

organizations/ab9176be/members/bulk?memberId=8e936891&memberId=b71c4f1e  (This is not a web url. Its a service end point)

上述方法可以有多个memberId参数。 我知道addressable有一个expand方法,而ruby有一个to_param方法。

但我不知道这对我的情况是否有帮助。我很感激这里的一些帮助。

1 个答案:

答案 0 :(得分:0)

Route Globbing

我确定这会有所帮助,但考虑到你没有回复,我觉得我最好发帖

几个星期前我了解了route globbing。基本上,这允许您定义这样的路线:

  

get 'books/*section/:title', to: 'books#show'

     

匹配books/some/section/last-words-a-memoir   params[:section]等于'some/section'params[:title]等于   '最后字-A-自传'。


虽然与您的问题的解决方案没有直接关系,但它可能会帮助您了解Rails如何处理应用程序中的某些路线。从本质上讲,它意味着您可以根据需要添加任意数量的“通配符”路由,并在params哈希

中编译路由的各种元素