覆盖 gem 视图的适当方法是什么?

Tri*_*rip 3 rubygems ruby-on-rails

我认为将整个 gem 解压到我的应用程序中有点过分了。有没有办法只覆盖它提供的单个视图?

这个 gem 是 spree_easy_contact,它允许您轻松地将联系表单添加到 Spree 应用程序中。我只是想篡改其中一个观点来说一些替代的话。

小智 5

如果 gem 已命名,那么您可以在本地应用程序中为视图命名。例如,如果 gem 的命名空间为 best_gem_ever,那么您的应用程序结构将如下所示:

app
- assets
- controllers
- helpers
- mailers
- models
- views
- - best_gem_ever
- - - wonderful_controller
- - - - index.html.erb
Run Code Online (Sandbox Code Playgroud)

在我的工作中,我们有目的地使用这种技术来允许客户覆盖前端视图,同时仍然从 gem 中提取管理视图。效果非常好。

需要注意的是,如果您创建了存储在本地资源文件夹中的任何资源文件,那么由于某种原因资源管道不会拾取它们。它们必须明确添加到您的 config.assets.precompile 列表中。

希望有帮助!