我想知道我是否可以设置路由,以便带参数的show route转到另一个方法,并且当它没有参数返回show方法时。
get fruits/:id fruits#show
和
get fruits/id?market=XXX fruits#market
我想这样做,因为我想通过ajax重新加载该页面,并且我做一个popstatus来添加该url。以这种方式使用这条路线会很棒
答案 0 :(得分:5)
使用路线约束。
get 'fruits/:id', to: 'fruits#market', \
constraints: ->(request) { request.query_parameters.present? }
get 'fruits/:id', to: 'fruits#show'
您还可以检查是否存在特定参数,例如market
:
get 'fruits/:id', to: 'fruits#market', \
constraints: ->(request) { request.query_parameters[:market].present? }