ruby-on-rails - 覆盖 gem View 的合适方法是什么?

标签 ruby-on-rails rubygems

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

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

最佳答案

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

app
- assets
- controllers
- helpers
- mailers
- models
- views
- - best_gem_ever
- - - wonderful_controller
- - - - index.html.erb

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

请注意,如果您创建任何存储在本地 Assets 文件夹中的 Assets 文件,那么出于某种原因, Assets 管道不会选取它们。它们必须显式添加到您的 config.assets.precompile 列表中。

希望对您有所帮助!

关于ruby-on-rails - 覆盖 gem View 的合适方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4947589/

相关文章:

ruby-on-rails - Rails 3 中私有(private)消息建模的首选方式

ruby-on-rails - 在 Rails 的 LESS 文件中使用数据库值

mysql - 使用 ruby​​ 1.8.7 Mac OSX 10.6 安装 mysql2 gem

ruby - 安装 gems - 什么是 "INFO: ` gem install -y` is now default and will be removed"mean

ruby-on-rails - 如何处理不推荐使用的 gem 警告 (SourceIndex#all_gems)?

用于在 xls/xlsx 电子表格中编写公式的 Ruby gem?

ruby-on-rails - 带有 Capistrano 重启的 unicorn 不起作用

javascript - 添加滑动功能以增加项目

mysql - Kubernetes 中的作业出错(如何使用 Kubernetes 部署 Rails 应用程序?)

ruby-on-rails - 从独立的 gem 加载 Rails 环境和类