`
yanzilee9292
  • 浏览: 534667 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Ruby1.9.3OnRails3.2入门锦集(2) 创建标准MVC应用

阅读更多

rails的脚手架(rails generator scaffold)可以快速生成应用程序所有MVC相关的文件。如果你需要为一个资源创建一系列的控制器视图模型,那么脚手架就是你需要的工具

 

1. 创建资源

对于一个博客程序,你可以以生成一个Post资源脚手架开始:

 

$ rails g scaffold post name:string title:string content:text
 

 

该命令将为你构建15个文件:

文件 说明
db/migrate/20101122214725_create_posts.rb 创建posts表的迁移任务 (你的文件名称将包括一个不同的时间戳)
app/models/post.rb Post 模型
test/fixtures/posts.yml 用于测试的posts夹具
app/controllers/posts_controller.rb Posts控制器
app/views/posts/index.html.erb posts的首页视图
app/views/posts/edit.html.erb posts的编辑视图
app/views/posts/show.html.erb 显示单个post的视图
app/views/posts/new.html.erb 创建post的视图
app/views/posts/_form.html.erb 用于编辑与新建post的局部表单模板
app/helpers/posts_helper.rb post视图的帮助器
test/unit/post_test.rb post模型的单元测试工具
test/functional/posts_controller_test.rb posts控制器的功能测试工具
test/unit/helpers/posts_helper_test.rb posts帮助器的单元测试工具
config/routes.rb 为posts添加路由信息
public/stylesheets/scaffold.css 脚手架的默认CSS

 

rails generate scaffold 命令产生的其中一个文件就是数据库迁移文件,Migration 是设计用来方便创建和修改数据库的Ruby类。rails使用rake任务来运行迁移。而且 Migration 可以撤销先前应用到数据库内的迁移操作。我们现在来看一下所生成的迁移文件(记住:迁移任务的文件名永远是唯一的):

 

class CreatePosts < ActiveRecord::Migration
  def change
    create_table :posts do |t|
      t.string :name
      t.string :title
      t.text :content

      t.timestamps
    end
  end
end

 

 

下面我们运行数据库迁移任务:

 

$ rake db:migrate

 

rails 将执行数据库的创建任务,并提示已经为你创建了posts表

 

2. 添加超链接

下面我们将在首页添加一个到posts的超链接:

 

<h1>Hello world</h1>
<p><%= link_to 'My Blog', posts_path %></p>

 link_to 标签是rails的内置视图帮助器的功能之一,它根据参数创建一段超链接代码

 

现在你可以在浏览器查看博客了,

打开 http://localhost:3000 点击超链接:

 

Posts Index screenshot

 

rails将转到posts控制器的index方法,现在数据库里还没人任何记录,点击 New post 你可以转到新建post视图然后创建一条记录。之后你会发现你可以编辑,查看,以及删除该记录,而这么多功能只是用了一个 rails g scaffold 命令来完成的。

注意:在development模式下(默认)rails会在每次请求时重新加载你的代码,所以你不必要在每次修改后重启你的服务器

 

 

3. 模型

打开模型文件 app/models/post.rb,你会发现里面只是一个空的类:

 

class Post < ActiveRecord::Base
end

 实际上远远不是如此,Post类继承了ActiveRecord::Base类,Active Record为你的rails提供了大量的功能,包括基本的数据库CRUD操作,验证操作,复杂的搜索支持以及模型之间的各种关联。

 

下面我们为post模型添加一些验证:

 

class Post < ActiveRecord::Base
  validates :name, :presence => true
  validates :title, :presence => true, :length => {:minimum => 5}
end

 这些改动确保了了所有的posts都必须具有name与title属性,并且title必须包含至少5个字符。

 

要查看动作的验证,你可以使用控制台。控制台可以根据你的上下文环境执行ruby代码:

 

$ rails c (rails console)

 

控制台加载完成后, 你可以操作你的模型

 

 

irb(main):001:0> p = Post.new(:content => 'a new post')

=> #<Post id: nil, name: nil, title: nil, content: "a new post", created_at: nil, updated_at: nil>

irb(main):002:0> p.save

=> false

irb(main):003:0> p.errors

=> {:name=>["can't be blank"], :title=>["can't be blank", "is too short (minimum is 5 characters)"]}

irb(main):004:0>

 

该代码显示了创建一个post实例,然后试图保存但是返回了false(也就是保存失败), 然后查看下发生的错误

 

退出控制台,输入exit然后回车就可以了。

分享到:
评论
1 楼 ahtest 2011-09-23  
太感谢你了。。。

相关推荐

    ruby 1.9.3 p484稳定版本

    Ruby 1.9.3 p484 是一个重要的编程语言版本,专为Windows平台设计,提供了稳定且高效的运行环境。Ruby是一种动态、面向对象的脚本语言,因其简洁、优雅的语法和强大的元编程能力而深受开发者喜爱。在1.9.3这个版本中...

    ruby 1.9.3

    Ruby 1.9.3是Ruby编程语言的一个重要版本,发布于2012年,为开发者提供了许多改进和新特性。Ruby是一种面向对象、动态类型的脚本语言,以其简洁、优雅的语法和强大的功能而受到全球开发者的喜爱。在这个版本中,Ruby...

    ruby1.9.3下载

    ruby1.9.3版本

    ruby-1.9.3-p547.tar.gz

    2. 解压下载的压缩包:`tar -zxvf ruby-1.9.3-p547.tar.gz` 3. 进入解压后的目录:`cd ruby-1.9.3-p547` 4. 执行配置脚本来适应你的系统环境:`./configure` 5. 编译源代码:`make` 6. 安装编译好的Ruby到系统路径:...

    ruby 1.9.3安装程序

    rubyinstaller-1.9.3-p125.exe

    ruby 1.9.3 source code

    ruby 1.9.3 source code

    rubyinstaller-1.9.3-p385

    Ruby是一种面向对象的、动态类型的编程语言,由Yukihiro "Matz" Matsumoto在1995年创建。它以其简洁、优雅的语法和强大的元编程能力而闻名,被广泛应用于Web开发、脚本编写、自动化任务等领域。RubyInstaller是...

    ruby _1.9.3 _gem环境

    总结,Ruby 1.9.3的Gem环境是开发和管理Ruby应用的基础,理解其工作原理和操作方法对提升开发效率至关重要。通过正确配置Gem源、管理Gemset以及熟练使用Bundler,可以使你的开发过程更加顺畅。同时,保持Gem的更新和...

    Ruby installer 1.9.3

    Ruby Installer 1.9.3 包含了Ruby解释器、标准库以及必要的工具,如RubyGems,它是Ruby的包管理器,允许用户方便地安装和管理第三方库。RubyGems通过gem文件来分发和安装这些库,极大地丰富了Ruby的功能和生态系统。...

    RVM+Ruby1.9.3+Rails3(1-Cygwin 安装配置)

    ### RVM + Ruby 1.9.3 + Rails 3 安装与配置指南 #### 一、前言 在 Windows 7 环境下搭建 Rails 3 开发环境是一项颇具挑战性的任务,尤其是当涉及到 Cygwin、Ruby、Rails 以及一系列其他必要的组件时。本文将详细...

    ruby-1.9.3-rpm:Ruby 1.9.3的RPM规范

    我基于Ruby 1.9.3和Ruby Enterprise Edition的规范进行工作。如何安装RHEL / CentOS 5/6 yum install -y rpm-build rpmdevtools readline-devel ncurses-devel gdbm-devel tcl-devel openssl-devel db4-devel byacc...

    ruby-1.9.3

    1. **Unicode支持**:Ruby 1.9.3全面支持Unicode字符集,这使得处理多种语言和字符变得更加方便,为国际化和本地化提供了更好的基础。 2. **更快的性能**:通过优化内部实现,1.9.3版本相比之前的版本有了显著的...

    ruby-1.9.3-preview1.zip

    Ruby 1.9.3 是一个重要的 Ruby 语言版本,它在2011年发布,带来了许多性能改进和新特性。这个“ruby-1.9.3-preview1.zip”文件是一个预览版的安装包,供开发者在正式版本发布前进行测试和评估。在深入探讨这个版本...

    railsinstaller-2.2.3.part2.rar

    railsinstaller-2.2.3.exe packages included Ruby 1.9.3 Rails3.2 Bunder Sqlite TinyTDS SQL Server Support Devkit Git

    ruby-1.9.3-p551.tar.gz

    标题中的"ruby-1.9.3-p551.tar.gz"表明这是一个使用Ruby编程语言的特定版本,即1.9.3-p551,它被打包成一个gzip压缩的tar档案。Ruby是一种面向对象的、动态类型的脚本语言,广泛用于Web开发、服务器端脚本以及各种...

    ruby-1.9.3-p125.tar.gz

    标题中的"ruby-1.9.3-p125.tar.gz"揭示了我们要讨论的是一个特定版本的Ruby编程语言——1.9.3的p125补丁级别。Ruby是一种面向对象的、动态类型的脚本语言,由Yukihiro Matsumoto(Matz)在1995年创建。它以其简洁、...

    Ruby installer 1.9.3 .exe new

    Ruby installer 1.9.3 .exe new sass

    Ruby-1.9.3 window

    在 Windows 平台下一步安装 Ruby-1.9.3

    ruby-1.9.3-

    Much of the growth is attributed to the popularity of software written in Ruby, particularly the Ruby on Rails web framework2. Ruby is also totally free. Not only free of charge, but also free to ...

Global site tag (gtag.js) - Google Analytics