Rails::Engine使我们可以将一个完整的Rails应用打包,并在不同的应用中使用。在Rails 3中,每一个Rails::Application都是一个Engine,这使得我们可以非常容易的实现将我们的应用模块化。如何开发Rails::Engine已经有许多现有的开发教程,下面几个地址可以为我们开发Engine提供帮助:
ActiveRecord::Observer
ActiveRecord::Observer顾名思义,是采用的观察者模式进行设计。它对ActiveRecord模型的callbacks做出响应,就好像触发器一样。这样使得我们可以将一些不应在模型中存在的行为移出模型类,为它安置恰当的位置。例如我们可能需要在用户注册成功后发送邮件到用户的邮箱这样的行为。
在Rails Engine中实现Observer,包括一下两个步骤:
定义Observer
在你的项目中创建app/observers目录,用于保存observers。如果你希望将你的observers定义在自己的module中,你也可以修改你的目录为app/observers/{module_name},来存放observers。
1 |
class ContactObserver < ActiveRecord::Observer
|
2 |
def after_create(contact)
|
3 |
contact.logger.info( 'New contact added!' )
|
6 |
def after_destroy(contact)
|
7 |
contact.logger.warn( "Contact with an id of #{contact.id} was destroyed!" )
|
激活Observer
在Engine中定义需要激活的Observer。此步非常重要,因为observers必须被显式的激活才会生效。
1 |
class Engine < Rails::Engine
|
5 |
config.active_record.observers = :contact_observer
|
FROM:http://hetao.im
分享到:
相关推荐
shoppe-example, 在 Rails 中使用Shoppe平台的示例存储实现 这是一个 Rails 应用程序,它使用 Shoppe 构建。 它具有一个可以爱的设计,以充分演示Shoppe平台提供的功能以及它在 Rails 应用程序中的。 正在启动要开始...
Google Sign-In for Rails 实现将Google登录集成到您的Rails应用中
Ruby on Rails中文指南
rails-assets, 在 Rails 中,资产管理的解决 Rails 资产 Bundler 到 Bower 代理本自述文件涉及项目的开发方面。 访问站点了解如何在你的应用程序中使用 Rails 资产。 插件开发设置git clone git@github.com:tenex/r
如何使用Rails engine进行模块化的开发,如何拆分模块
入门rails的第一个demo
Ruby On Rails中文教材(PDF)
Knock - 为Rails API实现无缝JWT身份验证
rails_email_preview, 在 Rails 中,预览和编辑应用程序邮件程序模板 Rails 电子邮件预览 使用这里 Rails 引擎在浏览器中预览电子邮件。 兼容 Rails 4.2 。电子邮件审阅: 所有电子邮件预览的列表: 代表有两个主题...
rails指南 中文版
使用Aptana+Rails开发Rails Web应用 有Aptana的安装配置等等,中文
实例的源代码 博文链接:https://babo.iteye.com/blog/72298
在过去的几年中,《Ruby on Rails Tutorial》这本书被视为介绍使用 Rails 进行 Web 开发的先驱者。 在这个全球互联的世界中,计算机编程和 Web 应用程序开发都在迅猛发展,我很期待能为中国的开发者提供 Ruby on ...
bower-rails, 在 Rails 上,为 Bower 设置类似 DSL + rake任务 rails Bower 对 Rails 项目的支持。 依赖文件是 Rails root 目录中的bower.json,如果使用 DSL,则为 Bowerfile 。 查看最新变更和发布的变更日志文件...
Maily是一个Rails引擎,用于管理,测试和浏览应用程序的所有电子邮件模板,并能够直接在浏览器中预览它们。 Maily会自动提取所有电子邮件,并通过一种仪表板对其进行访问。特征: 可安装的引擎浏览器中的视觉预览...
Ruby on Rails框架实现的无线点餐系统项目是一个基于无线网络技术,专为餐饮行业设计的综合性信息化解决方案。此系统利用Ruby on Rails全栈式MVC框架,结合当下先进的移动互联网技术,旨在提升餐厅运营效率、优化...
敏捷Rails中文教程 敏捷Rails中文教程 敏捷Rails中文教程
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 ...