【发布时间】:2023-04-06 09:19:01
【问题描述】:
我正在开发一个带有多个可安装引擎的 rails 应用程序。我使用 deface gem 来覆盖视图的某些部分,但是在更新其中一些视图时遇到了一些问题。
我不知道这是我正在犯的问题还是错误,但是当您在 layout 文件中有部分内容时,deface 似乎有一些问题要触发(我也在使用可安装的发动机)
让我用一个例子来解释。我的应用程序在 application.html.erb 文件中有以下代码。
<!-- some code -->
<div class = "container">
<header class="masthead">
<%= render "shared/navbar" %>
</header>
<!-- some more code -->
在 navbar.html.erb 文件上我有:
<!-- some code -->
<li data-dat-hook='main_nav' class="nav-item">
<%= link_to 'Home', dat.root_path, class: "nav-link" %>
</li>
<!-- some more code -->
会触发污损的是data-dat-hook。
在适当的文件中,在适当的地方定义:
Deface::Override.new(:virtual_path => "dat/shared/_navbar",
:name => "add_contacts_link_to_main_nav",
:insert_after => "[data-dat-hook='main_nav']",
:partial => "overrides/analyses_link",
:namespaced => true)
Deface 似乎甚至没有意识到这条虚拟路径的存在。我不知道为什么......如果我将代码从部分移动到布局文件(并更新虚拟路径),事情就会完美地工作。
【问题讨论】:
标签: ruby-on-rails deface