Rails - 覆盖功能

时间:2012-06-12 16:12:14

标签: ruby-on-rails ruby ruby-on-rails-3 architecture

我很惊讶地发现在rails中定制东西有多简单。 首先安装一个gem,它提供了你需要的一些功能,然后你只需自定义你需要的东西。

一个例子是Spree,它可以通过简单地用自定义代码覆盖模板和ruby文件来定制。

我只是想知道是谁允许我这样做: 是Ruby吗? 这是宝石的架构吗? 它是Rails架构吗?

2 个答案:

答案 0 :(得分:0)

Ruby允许元编程,因为它在运行时进行了评估。

在rails应用程序中,您可以将类似ruby String的类添加到initializers文件夹中,并添加新的声明性方法,然后将这些方法添加到String类中,并可与字符串一起使用。

了解更多http://www.vitarara.org/cms/ruby_metaprogamming_declaratively_adding_methods_to_a_class

答案 1 :(得分:0)

它是部分铁轨和部分红宝石。多年来,Rails已经被开发人员和插件编写(并且已被重写)。某些钩入和覆盖功能的方法是通过ruby实现的,而其他方法在许多动态性较弱的语言中都是相同的。