【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

Rails Cells:让 Rails 支持面向组件的开发

  • 2008-05-18
  • 本文字数:1231 字

    阅读完需:约 4 分钟

Rails Cells 的目标是“把面向组建开发的优势带进 Ruby on Rails 网络应用程序平台”。单元(cell)就像是一个轻量级的控制器以及与其相关的可以嵌入网站的视图(类似于 Smalltalk 的网络应用程序框架 Seaside )。

那么 Rails 现在的功能有什么问题呢? Mike Pence 的博客里是这么说的:

很多 Rails 项目通常用 before_filters 和子视图(partials)来填补空缺,但是这种方法本身有些问题。共享的子视图有许多初始化代码,这使 application_helper 变 得肿胀不堪。由于他们能看到所有先前的控制器方法的实例变量——我觉得这是个不幸的设计——它们会非常依赖于最初引发它们的控制器、最初包含它们的视图, 还有它们所依靠的辅助器(helper)。从我的经验来看,很少见到大量的子视图能够容易地共享,而不需要人们通过相当痛苦地调试把它们从自己编织的依赖 网中解救出来。

与控制器和其视图之间的关系不同,控制器的实例变量并不会自动地分享给 cell,而必须要明确地传递。这就使得 Cells 能够独立于某个特定的控制器,从而既可以重用也可用共享了。

我们访问了 Cells 的开发者之一 Nick Sutterer,谈了关于 Cells 项目开发的情况:

我们正在写 Cells 的增强版,可是日常工作还是很忙的(开源开发者的经典理由)。幸运的是,社区上有 人已经提交了一些补丁,并帮助做了些文档——特别是 Mike Pence。在 1.0 发布时,我们希望这个插件是好用、著名的,其 API 应是稳定可靠的,并且将来不应有大的改动。
下一个版本将会完全兼容 Rails 2.0。现在辅助器(helper)还有一些问题。另外一个问题就是 Cells 的引擎(Engines 插件用来增强 Rails 自身的插件框架,使得更容易 在插件中共享控制器、辅助器和模块等)支持。我们其实很喜欢引擎。干得漂亮,James。然而人们好像都害怕它,因此我们只好把它变成用户可选的。我非常 喜欢把 cells 注入引擎的想法,这有助于把我的应用程序在最大程度上实现模块化。与 AJAX 结合时,cells 中的冒名保护(forgery protection)仍有一些问题。由于 cells 非常合适于 AJAX 来使用,我们将十分关注这点,并在下一个版本中解决这个问题。我保证。

我们还有兴趣听听,到目前为止,Cells 在 Rails 社区中被接纳的如何了:

Rails 社区对 cells 非常感兴趣。人们来到我们的聊天室或者使用邮件列表来询问怎样把 cells 集成到他们的项目中。Cells 把面向组件带进了 rails——然而要让开发者都了解到它的能量并且在大项目中使用它还需要一段时间。我的合作开发者 Peter Bex 已经开始使用 cells 了。他把 cells 集成到了一个叫做 formbuilder 的项目中。我现在忙于即将发布的基于 cells 的 Apotomo 插件。它用来把状态(stateful)组件引入 Rails,现在很热门。我敢肯定会有越来越多的好项目使用 cells 的。也许我应该在 cells 主页上开一个“成功故事”博客吧?

要详细了解 Cells,请参看 Cells 网站,或者看一看 Cells 文档

你使用过 Cells 吗?有没有关于 Cells 的成功故事呢?

查看原文: Rails Cells: Component-Oriented Development for Rails

2008-05-18 08:591184
用户头像

发布了 33 篇内容, 共 44475 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

图像视觉特效处理Boris FX Optics 2024破解版下载

影影绰绰一往直前

Boris FX Optics 2024 Optics 2024 mac Optics 2024下载 Optics 2024破解版

手机旗舰芯片巨头较量,都有哪些“秘密武器”?

脑极体

AI

Python 模块:创建、导入和使用

小万哥

Python 程序员 软件 后端 开发

为什么人生必须被定义?去探索无限可能

少油少糖八分饱

梦想 探索与实践 人生修炼 突破瓶颈 自我价值

2023-10-28:用go语言,给定一个n*m的二维矩阵,每个位置都是字符, U、D、L、R表示传送带的位置,会被传送到 : 上、下、左、右, . 、O分别表示空地、目标,一定只有一个目标点, 可以

福大大架构师每日一题

福大大架构师每日一题

Linux touch命令:创建文件及修改文件时间

攻城狮Wayne

Linux ln命令:建立链接文件

攻城狮Wayne

终端神器Termius for Mac SSH管理

影影绰绰一往直前

Termius for Mac下载 Termius for Mac破解

广州软件外包公司开发流程详解

V\TG【ch3nguang】

API商品数据接口调用实战:爬虫与数据获取

Noah

API 文档 API 开发

区块链系统开发软件外包公司

V\TG【ch3nguang】

DAPP合约质押挖矿系统开发(源码搭建)

l8l259l3365

After Effects 2023 for Mac(Ae视频特效制作) v23.6永久激活版

mac

AE2023 苹果mac Windows软件 After Effects 2023 视频特效编辑软件

Linux cp命令:复制文件和目录

攻城狮Wayne

从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享

JYeontu

前端 Electron gitee 免费图床

Downie 4 for mac(视频下载工具) 4.6.32中文激活版

mac

视频下载工具 苹果mac Windows软件 Downie

Illustrator 2023 for mac(ai2023矢量图形编辑软件) v27.9完整激活版

mac

ai2023 苹果mac Windows软件 矢量图形编辑软件 Illustrator 2023

如何找到靠谱的软件外包开发公司?

V\TG【ch3nguang】

LP流动性挖矿系统开发详细需求丨LP流动性挖矿dapp开发源码部署

V\TG【ch3nguang】

苹果mac电脑花见Live Wallpaper & Themes 4K Pro中文破解版下载

影影绰绰一往直前

动态壁纸

图像处理软件:Capture One Pro 23 for Mac破解版

影影绰绰一往直前

Capture One Pro 23 Capture One Capture One 下载 Capture One 破解版

Python 作用域:局部作用域、全局作用域和使用 global 关键字

小万哥

Python 程序员 软件 后端 开发

ES6新特性(三)

阡陌r

JavaScript ES6 Promise 迭代器 生成器

Farrago for Mac(最佳的音频编辑软件)v2.0.6直装激活版

影影绰绰一往直前

farrago mac下载 farrago mac破解版

KK 架构训练营 - Week1

jjn0703

架构

DeFi(智能合约)流动性质押挖矿系统开发理念丨python合约编程教程

V\TG【ch3nguang】

Rails Cells:让Rails支持面向组件的开发_Ruby_Mirko Stocker_InfoQ精选文章