Rails – 更改视图语言顺序

问题描述 投票:0回答:1

我有一个之前使用 ERB 视图编写的 Rails 项目。我正在慢慢地将项目转换为 HAML,方法是在开始时为每个视图创建一个副本,将 HAML 视图构建为奇偶校验(基于新的 UI 框架进行更改),然后删除旧的 ERB 视图。这个过程的问题是,rails 更喜欢 ERB 视图文件,因此我必须重命名旧视图文件,或者等到删除它才能看到新的视图文件。

虽然我认为使用相同渲染格式的重复视图文件将代码交付到生产中并不是一个好的做法,但这让我思考选择视图文件的过程:是否有一个全局定义的优先级,我可以更改为如果项目中存在 HAML 文件,更喜欢它吗? Rails 如何选择要渲染的视图文件?

ruby-on-rails haml erb
1个回答
0
投票

处理程序按其注册顺序排列优先级。您可以重新注册处理程序,使其排在最后。例如将 ERB 移至最后优先级:

ActionView::Template.unregister_template_handler(:erb)
ActionView::Template.register_template_handler(
  :erb, ActionView::Template::Handlers::ERB.new)

对 haml 进行同样的操作:

ActionView::Template.unregister_template_handler(:haml)
ActionView::Template.register_template_handler(
  :haml, Haml::RailsTemplate.new)

更一般地说,如果您在 gem 中搜索

register_template_handler
,那么您可能会找到需要注册的处理程序。

在 Rails 7.0 中测试

© www.soinside.com 2019 - 2024. All rights reserved.