0

所以基本上我正在创建一些客户端方法,这些方法将创建一个访问外部服务的路径。另外,我正在使用可寻址的宝石。

这是一个例子:

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 方法。

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

4

1 回答 1

0

路由匹配

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

几周前我了解了路线通配。基本上,这允许您像这样定义路由:

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

将匹配equalsbooks/some/section/last-words-a-memoir和 equals 'last-words-a-memoir'。params[:section]'some/section'params[:title]


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

于 2014-05-30T09:03:02.873 回答