我认为将整个gem打包到我的应用程序中会有点过分。有没有办法只覆盖它提供的单个视图?
此gem是spree_easy_contact,可让您轻松地将联系表单添加到Spree应用程序中。我只是想篡改其中一个观点来说一些替代方案。
答案 0 :(得分:2)
如果gem是命名空间,那么您可以在本地应用程序中命名视图。例如,如果gem命名为best_gem_ever,那么您的app结构将如下所示:
app
- assets
- controllers
- helpers
- mailers
- models
- views
- - best_gem_ever
- - - wonderful_controller
- - - - index.html.erb
在我的工作中,我们有目的地使用这种技术来允许客户端覆盖前端视图,同时仍然从gem中提取管理视图。它的效果非常好。
有一点需要注意,如果您创建了存储在本地资产文件夹中的任何资产文件,那么由于某种原因资产管道不会提取它们。必须将它们显式添加到config.assets.precompile列表中。
希望有所帮助!