Ruby on rails 为什么rails中视图文件的命名约定仅被视为action.html.erb?

Ruby on rails 为什么rails中视图文件的命名约定仅被视为action.html.erb?,ruby-on-rails,Ruby On Rails,为什么rails中视图文件的命名约定仅被视为action.html.erb(而不是action.erb.html) 如果我们将视图文件写为action.erb.html,会发生什么 如果我们将视图文件写成action.erb.html,会发生什么 首先,编辑器中的Ruby语法高亮显示将停止工作,因为文件扩展名现在是.html,而不是.erb。在几乎所有正在使用的文件系统上,文件扩展名都是文件名的最右边部分 第二件事情将发生,Rails将不再能够查找模板,即使可以,它也将不再通过ERB处理模板,因

为什么rails中视图文件的命名约定仅被视为action.html.erb(而不是action.erb.html)

如果我们将视图文件写为action.erb.html,会发生什么

如果我们将视图文件写成
action.erb.html
,会发生什么

首先,编辑器中的Ruby语法高亮显示将停止工作,因为文件扩展名现在是
.html
,而不是
.erb
。在几乎所有正在使用的文件系统上,文件扩展名都是文件名的最右边部分

第二件事情将发生,Rails将不再能够查找模板,即使可以,它也将不再通过ERB处理模板,因为它不再具有
.ERB
文件扩展名

.html
只是文件名的一部分,它允许rails模板解析器在查找给定请求格式的模板时区分不同格式的模板。从技术上讲,这并不是扩展的一部分。例如:

show.html          #  just HTML - no processing
show.html.erb      #  a HTML ERB template
show.html.slim     #  a HTML Slim template
show.html.haml     #  a HTML Haml template

show.xml.erb       #  a XML ERB template
show.xml.slim      #  a XML Slim template
show.xml.haml      #  a XML Haml template

show.json.erb      #  a JSON ERB template
show.json.jbuilder #  a JSON jBuilder template
TRDL更改文件扩展名是一个愚蠢的想法。特别是当你认为Rails实际上支持多个模板引擎,比如JBu建器,SLIM和HAML,除了Erb。