快速业务通道

使用ActiveScaffold增强Ruby on Rails的功能 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14

使用ActiveScaffold增强Ruby on Rails的功能

时间:2011-11-29 Mike Perham

解放 RoR:让 ActiveScaffold 来管理数据输入页面

简介:节省点时间,少一些头痛,使用 Ruby on Rails ActiveScaffold 插件可以创建更容易维护的 页面。ActiveScaffold 可以处理用户接口所需的所有 CRUD(创建、读取、更新和删除)操作,这样可以 为您节省更多时间来重点关注更有挑战(也更有趣的)问题。

为复杂应用程序编写基于 Web 的数据输入 UI 永远都不是件快乐的事,通常都是非常单调乏味的。良 好用户界面的一个关键属性是一致性,但是这需要一个博学勤勉的开发团队才能设计符合这种设计标准的 Web 页面。与其他 Web 应用程序框架类似,Ruby on Rails 也有相同的问题。不过,Ruby 语言的动态特 性提供了一个解决方案:ActiveScaffold。ActiveScaffold 是 Ruby on Rails (也称为 Rails)的一个 插件,它可以动态地生成基于模型的视图。ActiveScaffold 不需要手工创建页面来显示模型,而是可以 从内部审视 ActiveRecord 模型,并动态地生成一个 CRUD(创建、读取、更新、删除)用户界面来管理 这些对象。

本文是基于 ActiveScaffold、Ruby 和 Rails 的当前(撰写本文之时)可用的最新版 本来撰写的(链接和版本号请参看 参考资料)。另外,本文假设您非常熟悉 Ruby on Rails,并且正在 使用 Linux® 或 Mac OS X 系统。Windows® 用户应该修改本文中给出的命令来适合自己的环境 (例如,将 ‘ruby’ 添加到脚本命令最前面)。

安装 ActiveScaffold

由于 ActiveScaffold 是一个 Rails 插件,可以从一个远程 Web 或者 Subversion 服务器上安装。下面的命 令将从 ActiveScaffold Subversion 服务器中获取 ActiveScaffold。

清单 1. 安装 ActiveScaffold 插件

script/plugin install 

http://activescaffold.googlecode.com/svn/tags/active_scaffold

注意这将获取 ActiveScaffold 的当前发行版(即最新发行版)。撰写本文时使用的是 1.0 发行版,但是也可以使用将 来的发行版:ActiveScaffold 开发人员迄今为止一直很好地关注着兼容性问题。

使用ActiveScaffold增强Ruby on Rails的功能(2)

时间:2011-11-29 Mike Perham

模型

最 现代的 Web 应用程序框架都基于 MVC(模型、视图、控制器)模式,Rails 也不例外。模型表示数据库 中存储的数据,每个表在 Ruby 中都有一个对应的 ActiveRecord 模型类。在本文中,我们创建了一个简 单的项目跟踪应用程序,其中,组织拥有很多用户和很多项目。下面的代码显示了 ActiveRecord 向应用 程序和对应模型类上迁移的过程。注意模型类要比 Java 中相同的类简单很多。这是 Rails 的 DRY(不 要重复自己)原则的基本例子。由于迁移早已包含了列,为什么还要在模型类中再次将它们列出来呢?

清单 2. 迁移

class AddOrganizations < ActiveRecord::Migration
 def self.up
  create_table :organizations do |t|
   t.column :name, :string, :limit => 50, :null => false
  end
 end
 def self.down
  drop_table :organizations
 end
end
class AddUsers < ActiveRecord::Migration
 def self.up
  create_table :users do |t|
   t.column :first_name, :string, :limit => 50, :null => false
   t.column :last_name, :string, :limit => 50, :null => false
   t.column :email, :string, :limit => 100, :null => false
   t.column :password_hash, :string, :limit => 64, :null => false
   t.column :organization_id, :integer, :null => false
  end
  add_index :user

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号