|
|
1
17
这个问题已经很老了,但我觉得它需要更多的充实。确实,您可以在运行时使用monkeypatch rails(和ruby)。这意味着很容易重新打开类或模块并注入新代码。然而,在rails中,由于在开发模式下进行的所有动态类加载和卸载,这有点棘手。
最简单的方法是将代码放入初始值设定项(例如config/initializers/user_extensions.rb)。您可以使用class_eval注入代码。
ruby可扩展性的一个主要缺点是跟踪代码的来源。您可能需要添加一些关于正在加载的扩展的日志消息,以便人们可以跟踪它。
进一步阅读: http://airbladesoftware.com/notes/monkey-patching-a-gem-in-rails-2-3 |
|
2
1
更新:
对我的意思是以某种方式修改通用api,这样就可以定制每个应用程序。例如,允许用户将块传递给某些方法等。 |