我们需要在partials中添加html扩展吗?

时间:2013-11-13 09:00:22

标签: ruby-on-rails naming-conventions

我们有一个部分_form.html.slim

rails似乎没有区别为html扩展添加你,因此我们可以删除html扩展名。 _form.slim将是相同的部分并且运作良好。

有什么不同吗?

3 个答案:

答案 0 :(得分:4)

通用格式处理

模板的方案是:<action_name>.<format>.<preprocessors>

添加格式扩展名是对该文件类型约束模板的一种方法,但它完全是可选的,就像预处理器一样。

例如,如果您要实施foos/index.erb模板,则可以使用它来呈现http://host/fooshttp://host/foos.jsonhttp://host/foos.html或您使用的任何mime类型。使用foos/index.html.erb,您指定此模板应仅用于html。

格式化模板可用于格式约束取决于:

  • 在控制器中使用与否#respond_to,强制允许格式
  • 默认识别格式

现在有很多a bunch of default recognized mime types:html,text,js,css,ics,csv,png,jpg,gif,bmp,tiff,mpeg,xml,rss,atom,yaml,json, pdf,zip。

如果要同时指定强制格式的文件名和不带格式的文件名,则强制格式模板将优先于该给定格式(因此,如果您有foos/index.htmlfoos/index,第一个将用于呈现html页面,而第二个将用于任何其他格式。)

请注意,由于格式和预处理器都是可选的,因此如果需要,您可以只有一个foos/index文件。这将为所有默认格式提供静态文件(未预处理)。

使用partials

完全相同的规则适用于部分。如果指定格式,则partial将仅用于该格式。您可以指定具有每种格式的多个部分,并且可以省略格式以对所有格式使用相同的部分。

答案 1 :(得分:0)

是的,你可以这样做,但那部分也将呈现为js和css。所以如果可能的话尽量避免它

答案 2 :(得分:0)

我不确定在这种情况下,但html是内容类型,slim会是模板引擎。 filename.content_type.template_engine格式将其分离出来进行处理。它可能有助于您删除html扩展,但我认为最好的做法是保持扩展到位。