engines 可以将app中的modle controller view 都放在plugin中,和rails设计初衷不一致,DHH一度比较反对engines。rails的解决方案使用generator。而generator都是放在app下,这样一堆代码都放在app下,也不是很好。相比generator,engines还是有优点的,在rails2.3 它又重新归来(听说django设计是使用mini_app)。
缺点:
Rails Engines allow you to package up some of a Rails app (controllers, models, views, routes, libs) and put them in a plugin that can be included into a new Rails app, thereby giving it the functionality you had in the engine. That sounds good, but what about the downsides of using an engine? Well, you can’t override or extend any of the functionality from the engine in your main application. You can hack at the plugin, but now you’ve made it difficult to update. So what do you do if you want to add or alter a method to a controller or model? What do you do if you want to change the look and feel of a view? You have to copy everything into your main application. Boo!
Rails Engines also don’t allow you to package up migrations, assets, plugins, initializers, etc… All the fun stuff that you’ve come to know and love about a Rails application.
1 install plugin engines:script/plugin install http://svn.rails-engines.org/plugins/engines
其中controller,view helper 中的方法可以override。详细的见rails-engines.org.
2 script/generate plugin comment
3 在vender/plugin 下讲app db public copy在comment/下,降你的route,或要copy的东东写成脚本,为了下次在多个项目中使用。
4 具体的看engines源码和readme
从bd71x得知 还有一种方式warp drive(http://www.metabates.com/2009/10/07/introducing-warp-drive-for-rails/)
分享到:
相关推荐
这个Rails项目提供了学习和研究Web开发的机会,特别是对于Ruby on Rails新手,可以通过阅读和理解源代码来提升技能,了解实际应用中Rails的用法。同时,对于有经验的开发者,这个项目也可以作为一个起点,进行二次...
#### 三、本书使用方法 - **目标读者**: 面向初学者。 - **前置技能**: 学习本书之前,读者需要具备一定的基础技能,包括Git的基本操作、编辑器的使用技巧以及Linux命令行的基础知识。 - **推荐资源**: - **Git...
Git作为版本控制系统,对于团队协作开发项目尤为重要,学习它的使用方法能够帮助开发者更好地管理代码的版本。而在Rails开发中,合适的编辑器可以提高代码编写和管理的效率,Linux命令行则对于部署和维护开发环境...
总的来说,了解和熟练掌握Rails 3.1和Cucumber-Rails 1.2.0的用法,对于任何希望在Ruby on Rails环境中进行高效、高质量开发的团队来说都是至关重要的。通过阅读相关的博客文章(如给出的链接),开发者可以深入学习...
本教程将详细介绍如何使用Aptana与Rails结合,创建一个功能完备的Web应用程序。 首先,我们需要安装Aptana Studio。你可以从其官方网站下载最新版本的安装包。安装过程中,遵循提示进行,确保选择自定义安装并勾选...
总的来说,`include`和`extend`是Ruby on Rails中模块化编程的重要工具,它们分别用于添加实例方法和类方法,而`self.included`回调可以让我们在`include`模块时自定义类的行为,比如同时添加实例方法和类方法。...
例如,Rails的路由系统是如何工作的,以及如何使用Rails进行RESTful API的开发。这些知识对于深入理解和优化Rails应用至关重要。 #### 5. Models, Views, and Controllers(模型、视图和控制器) MVC是Rails的核心...
在本文中,我们将深入探讨如何使用Rails敏捷开发技术构建一个购物车系统,特别是在参考《rails敏捷开发第四版》中的...通过这个过程,开发者不仅可以学习到Rails的基本用法,还能掌握Web开发的通用实践和敏捷开发理念。
- **方法**:在控制器中使用`render`方法来显示特定的视图文件。 - **视图文件**:通常使用ERB模板语言来编写视图文件,这些文件位于`app/views`目录下。 #### 八、组件 - **定义**:组件是可重用的代码块,用于...
在Rails中,这通常是通过`<%= f.date_field :date_field_name %>`这样的辅助方法实现的,这里的`:date_field_name`是模型中的属性名。然后,我们可以使用WebCalendar.js为这个输入字段添加日期选择功能。在...
描述中提到的博文链接指向了一个ITEYE博客文章,尽管具体内容未提供,但通常这样的博客可能会包含Rails的使用技巧、最佳实践、新版本更新或者特定问题的解决方案。 标签 "源码" 暗示了可能涉及Rails的源代码分析或...
此压缩包中的"rubyonrails21-cn.pdf"可能是《Ruby on Rails 2.1中文版》这本书的电子版,这本书详细介绍了Rails 2.1版本的特性、使用方法以及开发流程。 Rails框架的核心概念包括: 1. **ActiveRecord**:这是...
5. **Gemfile与Bundler**:Rails项目通常使用Gemfile来管理依赖库,Bundler工具则用于安装和管理这些依赖,确保在不同环境下项目的运行一致性。 6. **Scaffolding**:Rails提供了快速生成基本CRUD(Create, Read, ...
1. **生成资源(Generating Resources)**:使用`rails generate`命令可以快速创建模型、控制器、视图等文件,如`rails generate scaffold Post title:string content:text`会生成一个名为Post的资源,包含相关的...
这个压缩包很可能包含了 Rails 框架的源代码和其他相关文件,方便开发者进行下载、学习和使用。 标签 "rails ruby" 明确指出这个话题涉及到 Ruby 语言和 Rails 框架。Ruby 是一种面向对象的、动态类型的编程语言,...
1. **activesupport-2.1.0.gem**:ActiveSupport是Rails的一个重要库,提供了许多实用的工具和方法,如时间区处理、字符串格式化、数组和哈希操作等。它也包含了一些核心的Ruby扩展,帮助开发者编写更简洁、更具表达...
本书《Component-Based Rails Applications》主要介绍了如何使用Rails引擎(Rails Engine)进行基于组件的Rails应用开发,以及如何对应用程序的大型模块进行拆分和模块化。以下是书中一些核心知识点的详细说明: 1....
rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails 2.3.2离线安装rails ...