Ruby on rails 抑制Rails路由中的文件扩展名检测/格式映射
我有一个铁路路线的形式Ruby on rails 抑制Rails路由中的文件扩展名检测/格式映射,ruby-on-rails,url-routing,Ruby On Rails,Url Routing,我有一个铁路路线的形式 get'/:collection/*files'=>“player#index” 其中,文件是以分号分隔的媒体文件列表,例如,/my collection/some video.mp4%3Bsome audio.mp3 这些由以下形式的控制器操作处理: class PlayerController < ApplicationController def index @collection = params[:collection] @files
get'/:collection/*files'=>“player#index”
其中,文件
是以分号分隔的媒体文件列表,例如,/my collection/some video.mp4%3Bsome audio.mp3
这些由以下形式的控制器操作处理:
class PlayerController < ApplicationController
def index
@collection = params[:collection]
@files = params[:files].split(';')
end
end
这解决了没有路由匹配的问题,但是现在多个分离版本也会失败,因为缺少一个模板。(无论如何,这并不理想,因为我仍然希望在文件值中允许/
。但是/.*/
没有更好的效果。)
我尝试了格式:false
,有和没有约束
,但仍然发现缺少一个模板
我还尝试了一个普通的路径参数(/:collection/:files
),得到了与通配符*files
相同的行为
如何让Rails忽略并通过此路线的延伸
注意:我正在Ruby 2.5.1上使用Rails 6.0.0。在讨论之后,神奇的公式似乎将
默认值:{format:'html'}
添加到format:false
:
get'/:collection/:files',
致:“玩家#索引”,
格式:false,
默认值:{格式:'html'},
约束:{文件:/.*/}