Ruby on rails 将具有特定格式的请求路由到Rails中的其他控制器
我有一个路由,它将请求路由到Ruby on rails 将具有特定格式的请求路由到Rails中的其他控制器,ruby-on-rails,routing,Ruby On Rails,Routing,我有一个路由,它将请求路由到somepath/:id(:format)到somecontroller\show 这适用于任何格式的每个请求。但是,我有一个条件,somepath/:id.png应该返回一个图像,并且该图像的代码已经在othercontroller\show中实现 我认为最好将.png请求路由到othercontroller,而不是复制代码 实现这一目标的方法是什么? 我考虑过使用约束,但我不确定这是否是正确的方法。我认为唯一的方法是使用约束 match 'somepath/:id
somepath/:id(:format)
到somecontroller\show
这适用于任何格式的每个请求。但是,我有一个条件,somepath/:id.png
应该返回一个图像,并且该图像的代码已经在othercontroller\show
中实现
我认为最好将.png请求路由到othercontroller
,而不是复制代码
实现这一目标的方法是什么?我考虑过使用约束,但我不确定这是否是正确的方法。我认为唯一的方法是使用约束
match 'somepath/:id.png' => 'othercontroller#show'
match 'somepath/:id(.format)' => 'somecontroller#show
这会将所有.png请求路由到其他控制器,并将所有其他请求路由到somecontroller
确保将png路径放在另一条路径之前 这非常有效,只需添加
:format=>:png
。唯一的缺陷是它没有强制使用这种格式,所以我实际上可以访问somepath/id.png.json
。