使用ActiveScaffold增强Ruby on Rails的功能 - 编程入门网
使用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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |