我正在使用站点棱镜创建一个可能具有2个URL的页面对象。site_prism使用可寻址::模板,这使用URI模板RFC 6570。
所需的页面包含元素列表,但也没有一个元素,并且从此逻辑2中定义了可能的URL。
如果页面没有元素,则URL为 example.com/foo
如果页面具有元素,则将第一个选择为example.com/foo/1/bar
我正在尝试为页面创建一个URL模板,以便我可以拥有两个可能的输出之一。
案例1: Page.new.load
=> example.com/foo
案例2: Page.new.load(id: 1)
=> example.com/foo/1/bar
我到目前为止拥有的解决方案是:
set_url '/foo{/id,path}'
Page.new.load(id: 1, path: 'bar')
这适用于病例1,但不需要情况2,因为它需要2个变量。
set_url '/foo{/path*}'
Page.new.load(path: [1, 'path'])
同样,这适用于情况1,但不适用案例2。
我需要的是一个带有路径的URI模板,但前提是存在变量。类似:/foo{/id,path("bar")}
一个具有默认值的变量,或仅存在具有定义变量的路径。
预先感谢。
siteprism对可寻址模板有了很多更新
您是否尝试过以后版本的site_prism和可寻址的版本(Site_prism 2.12之后,可寻址为2.5)。
如果没有,您可以在github上打开一个缺陷/功能请求,因为这听起来像是我们"应该"支持的东西。https://github.com/natritmeyer/site_prism/issues