`
hozaka
  • 浏览: 39265 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Rails 中的扩展

阅读更多

最近公司一个项目,需要将新网站接入美国总部的 ERP 系统,同时对流程做一部分的扩展。在这之中碰到的最大的问题,就是没有旧系统的设计并不符合 ERP 的需求,而因为要保证整个过程的无缝链接以及敏感数据的安全,对于数据库的改动限制非常大。

同事 Daniel 负责这次的更新,我们对这个问题也讨论过好多次,在 Rails 如何实现这样的功能呢。最后选出了一种不破坏旧系统的结构,也不需要数据导入的方式。只在需要进行 ERP 扩展的对象上增加相应的字段,然后使用 Order 对象的子类 ERPOrder 进行封装,将这个类传递到 ERP 系统代替原来的 order 对象。这样下来,几乎整个 ERP 的交互过程不需要做太大的改动,流程控制也变得简单且清晰,状态判断以及异常处理也变得非常合理,代码精简不少。

对 ERPOrder 类的编码中,深刻体会到 Ruby 语言的动态性带来的便利。为了避免这次的情况,能为以后更新版本的系统提供兼容,我们将很多业务逻辑抽取出来,作为 module mix in 到 erp 对象中。以后即使系统再次升级,也不用担心是否会影响到 order 对象本身的业务逻辑以及数据验证。

不过对于 Ruby 中的  module,mixin,include 机制还不是了解得很透彻,以后要多学习了

分享到:
评论

相关推荐

    rails指南 中文版

    Rails指南中文版是针对...此外,Rails社区活跃,有大量的插件和gem可供扩展,为开发者提供了丰富的资源和强大的支持。通过深入学习和实践,你将成为一名高效的Rails开发者,能够创建出优雅、高效且易于维护的Web应用。

    userstamp, 这个 Rails 插件扩展ActiveRecord.zip

    userstamp, 这个 Rails 插件扩展ActiveRecord Userstamp插件( v-2.0 )概述Userstamp插件扩展了 ActiveRecord::Base,以添加对'创建者','更新程序'和'deleter'属性的自动更新。 它是基于 ActiveRecord::Timesta

    rails中使用javascript日期控件

    在Rails开发中,为了增强用户体验,常常需要使用JavaScript来处理日期选择和管理。这篇博客“rails中使用javascript日期控件”探讨的就是如何在Rails应用中集成JavaScript日期控件,特别是通过一个名为WebCalendar....

    Rails支持CoffeeScript扩展RailsBarista.zip

    Barista 可以简单透明的方式让你的 Rails 3 应用支持 CoffeeScript 脚本。 标签:Rails

    关于rails 3.1 cucumber-rails 1.2.0

    总的来说,了解和熟练掌握Rails 3.1和Cucumber-Rails 1.2.0的用法,对于任何希望在Ruby on Rails环境中进行高效、高质量开发的团队来说都是至关重要的。通过阅读相关的博客文章(如给出的链接),开发者可以深入学习...

    中文版rails教程

    Ruby的语法优雅,支持块、闭包和元编程,这使得Ruby在编写Rails应用时能够实现高度的灵活性和可扩展性。 **Rails框架核心组件** 1. **模型(Model)**:模型是应用的核心,负责处理数据和业务逻辑。ActiveRecord是...

    Rails

    标签 "源码" 暗示了可能涉及Rails的源代码分析或自定义扩展。Rails是开源的,开发者可以深入研究其内部机制,理解工作原理,甚至为框架贡献代码。 标签 "工具" 可能意味着讨论到了与Rails开发相关的工具,如集成...

    component base rails applications

    本书《Component-Based Rails Applications》主要介绍了如何使用Rails引擎(Rails ...这种基于组件的设计理念,能够让Rails应用在大型项目中保持灵活和可扩展,同时能够方便地集成第三方模块,提高开发和部署的速度。

    the rails way

    书中不仅讲解了Rails的核心概念,还介绍了如何利用Rails构建高效、可扩展的Web应用程序。 #### Rails Routing 书中详细介绍了Rails的路由系统,这是一个关键组件,负责将URL映射到控制器和动作上。理解Rails的路由...

    Ruby on Rails 指南 v5.0.1 中文版

    - **在Rails中使用ActionView**:指导如何在Rails应用中集成ActionView。 - **模板、局部视图和布局**:说明如何创建和使用模板、局部视图以及布局。 - **局部布局**:介绍局部视图的布局方式。 - **视图路径**:...

    rails2.3.2

    描述中的 "ruby and rails 的框架rails-2.3.3.zip" 提到的是 Rails 的另一个版本 2.3.3,尽管与标题中的版本号不完全匹配,但我们可以推断这是关于 Rails 2.3.x 系列的讨论。这个压缩包很可能包含了 Rails 框架的源...

    Rails osdc

    在Rails中,MVC架构模式被充分地利用: 1. **Model(模型)**:负责处理应用程序数据逻辑的部分,通常对应于一个数据库表。 2. **View(视图)**:用户界面部分,展示模型返回的数据。 3. **Controller(控制器)**...

    Rails的文件附件扩展Paperclip.zip

    Paperclip 是 Rails 框架的一个插件,用于扩展 ActiveRecord 以支持简单的文件附件的功能。 标签:Paperclip

    rails本地安装包完整版

    在这个"rails本地安装包完整版"中,包含了Rails 2.1.0版本的关键组件,这些组件是Rails框架的核心部分。 1. **activesupport-2.1.0.gem**:ActiveSupport是Rails的一个重要库,提供了许多实用的工具和方法,如时间...

    rails 项目起步示例

    在Rails项目中,我们首先需要了解的是项目的目录结构。一个标准的Rails应用会包含以下关键部分: 1. **app**:应用程序的核心,包括模型(models)、视图(views)和控制器(controllers)。模型负责业务逻辑和数据...

    Ruby on Rails实例开发

    在Rails中,Ruby的元编程能力使得框架能够灵活地自定义和扩展。 Rails的核心理念是DRY(Don't Repeat Yourself),鼓励代码重用,避免重复编写相似的代码。此外,它还提供了大量的内置功能和库,如ActiveRecord用于...

    Ruby on Rails入门例子

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构...同时,Rails社区的活跃度高,有大量的插件和 gems 可供扩展功能,为开发者提供了丰富的资源和支持。

Global site tag (gtag.js) - Google Analytics