我正在尝试执行以下操作:
constraints( brand: "/#{Brand.all.map(&:name).join('|')}/" )
不幸的是,它似乎没有按预期工作。有没有办法做到这一点?也许使用lambda?
答案 0 :(得分:1)
您可以使用自定义类定义自己的复杂约束。该类应该响应matches?
方法,该方法以request
为参数。
rails文档在高级约束部分here中指定了此方法。
答案 1 :(得分:1)
@ 31piy提供的答案让我走上正轨,但最终并不是完整的答案。这是工作代码:
constraints( lambda { |request| Brand.pluck(:slug).include?(request.params["brand"]) } ) do
collection do
get ':brand/:release', to: 'releases#show', as: 'release'
end
end