我很惊讶地看到在 Rails 中自定义东西是多么简单。您首先安装一个提供您需要的一些功能的 gem,然后您只需自定义您需要的东西。
Spree 就是一个例子,它可以通过简单地使用自定义代码覆盖模板和 ruby 文件来进行自定义。
我只是想知道谁允许我这样做:是 Ruby 吗?是这些宝石的架构吗?是 Rails 架构吗?
我很惊讶地看到在 Rails 中自定义东西是多么简单。您首先安装一个提供您需要的一些功能的 gem,然后您只需自定义您需要的东西。
Spree 就是一个例子,它可以通过简单地使用自定义代码覆盖模板和 ruby 文件来进行自定义。
我只是想知道谁允许我这样做:是 Ruby 吗?是这些宝石的架构吗?是 Rails 架构吗?
Ruby 允许元编程,因为它是在运行时评估的。
在 Rails 应用程序中,您可以将 ruby String 之类的类添加到初始化程序文件夹并添加新的声明性方法,然后将其添加到 String 类并可以与 Strings 一起使用。
阅读更多http://www.vitarara.org/cms/ruby_metaprogamming_declaratively_adding_methods_to_a_class
它是部分铁轨和部分红宝石。多年来,Rails 已经被开发人员和插件编写(并且被重写为更多)可扩展。某些挂钩和覆盖功能的方法是通过 ruby 启用的,而其他一些方法在许多动态性较低的语言中是相同的。