- 浏览: 236417 次
- 性别:
- 来自: 内蒙古
文章分类
- 全部博客 (236)
- Android 功能实现 (31)
- sql数据库的学习 (8)
- Android 美化界面 (2)
- Android 优化 (1)
- Ruby on Rails 方面 (45)
- git 方面的学习 (1)
- ruby 编程的琢磨 (13)
- linux下工具软件 (13)
- 操作系统的学习 (40)
- 非技术 (13)
- 网站开发 (18)
- js 学习笔记 (19)
- css学习 (5)
- 回顾总结 (2)
- Delphi 学习 (2)
- C 语言学习笔记 (1)
- 数据结构 (1)
- node js 学习 (6)
- 设计模式 (2)
- mongdb 学习笔记 (0)
- 软件服务 (3)
- osx系统 (4)
- 搜索引擎 (1)
- 测试工具 (1)
- Aliyun (1)
- 前端JS (1)
- python学习 (0)
- iOS系统 (1)
- 分布式锁 (1)
- 开发工具 (0)
- java代码 (2)
- java (0)
最新评论
-
jiguanghover:
写的不错,收藏一下
Ubuntu下RVM, Ruby, rails安装详细 和 卸载 -
maoghj:
回顾总结(二) -
yun2223:
对楼主表示感谢
Android控件开发之Gallery3D效果 -
zw_lovec:
说清楚点吧 亲 加点注释
out of memory -
lzyfn123:
http://www.iteye.com/images/smi ...
ruby-string 字符串的学习
ruby on rails入门教程之post构建二
- 博客分类:
- Ruby on Rails 方面
1. Hello Rails
接下来我们要输出一个所有语言的都要学习的 hello world。
要在rails应用中输出一个hello rails,你需要创建一个控制器以及一个视图。在rails的世界里,你几乎不用手动的一个个去创建各个控制器与视图,rails命令就可以帮忙我们搞定一切。
$ rails g controller home index
rails将根据命令为你创建多个文件,其他包括 app/views/home/index.html.erb, 这是一个用于显示index动作结果的模板,打开该文件,写入以下代码:
- < h1 > Hello, Rails </ h1 >
现在你已经完成了了控制器与视图。在这里,我们需要在访问 localhost:3000 的时候就显示hello rails,首先我们需要删除 public/index.html
$ rm public/index.html
然后你需要告诉rails你实际的首页在什么位置。打开 config/routes.rb, 该文件是你应用程序的路由设置,它用指定的DSL(domain-specific language)来保存条目,来告诉rails如何把进来的请求转发到相应的控制器以及动作。该文件包含了许多路由器样例,其他一个就是如何指定控制器 和动作来访问根地址。
找到以 root 开头的行,改为如下:
- Blog::Application.routes.draw do
- root :to => 'home#index' # :to 指定了需要访问的控制器与动作
- end
现在你可以在 http://localhost:3000 中看到Hello Rails了
2. 使用脚手架快速搭建网页
rails的脚手架可以快速生成应用程序的一些片段,如果你需要为一个资源创建一系列的控制器视图模型,那么脚手架就是你需要的工具
3. 创建资源
对于一个博客程序,你可以以生成一个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 self .up
- create_table :posts do |t|
- t.string :name
- t.string :title
- t.text :content
- t.timestamps
- end
- end
- def self .down
- drop_table :posts
- end
- end
上面的迁移创建了2个方法,up 是在你迁移进数据库时调用的,而down是你撤销迁移时用到的。up 命令创建了一个posts表以及2个string列,1个text列,同时它也为表自动创建了2个时间戳列,created_at, update_at 用于记录的创建与更新。下面我们运行数据库迁移任务:
$ rake db:migrate
rails 将执行迁移并告诉你它已经为你创建了posts表
4. 添加超链接
下面我们将在首页添加一个到posts的超链接:
- < h1 > Hello Rails </ h1 >
- < p > < %= link_to 'My Blog', posts_path % > </ p >
link_to 方法是rails的内置视图帮助器的功能之一,它根据参数创建一段超链接代码
现在你可以在浏览器内完成你博客的文章输入了。打开 http://localhost:3000 点击超链接:
rails将转到posts控制器的index动作,现在数据库里还没人任何记录,点击 New post 你可以转到新建post视图然后创建一条记录。之后你会发现你可以编辑,查看,以及删除该记录,而这么多功能只是用了一个 rails generate scaffold 命令来完成的。
注意:在development模式下(默认)rails会在每次请求时重新加载你的代码,所以你不必要在每次修改后重启你的服务器。
5. 模型
打开模型文件 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然后回车就可以了。
注意:与 development 服务器不同,控制台不会自动重载你的代码。所以当你的模型类发生改变时,输入 reload! 来重载代码。
来自:http://blog.csdn.net/emerald0106/article/details/7078904
发表评论
-
OpenSSL功能集合
2020-04-22 18:59 342OpenSSL中算法记录 1、证书(X.509证书 ... -
Aliyun-OSS 使用 - 图片持久化
2020-03-03 13:04 455Aliyun OSS 使用 - 图片持久化 参考:ali ... -
Sign in with Apple REST API (Rails)
2020-02-28 12:30 1025# 文档(Apple授权登录) https://deve ... -
RQRCode插件使用
2019-03-07 15:08 274def config { le ... -
gems 列表(rails 插件) 二
2014-11-19 19:41 450rails_best_practices 最佳实现 new ... -
rails 利用 Spreadsheet 导出xls格式数据
2014-10-08 17:22 6721、链接 XXX_path(forma ... -
rvm 使用记录
2014-09-26 11:11 528rvm是一个命令行工具,可以提供一个便捷的多版本ruby环 ... -
rails3内置gem包
2014-09-10 13:14 458rails3内置gem包: ... -
rails mongoid + carrierwave
2014-06-13 18:11 616中间插件:gem 'carrierwa ... -
rails 错误提示样式
2014-06-11 10:20 473源码 # Specify the proc us ... -
ROR Callbacks函数
2014-05-13 16:49 440Active Record Callbacks: ## ... -
字符串与对象的转化
2014-03-06 10:51 614classify: http://apidock.com/ ... -
nginx+unicorn+rails 配置文件
2014-02-17 14:43 582nginx+unicorn+rails 配置文件 ... -
ruby 里的正则表示
2014-01-22 17:27 0# ruby 中的正则表示 ... -
rails中Elasticsearch的客户端Tire配置
2014-01-22 15:25 1116$ gem install tire || http ... -
rails 多表关联
2013-12-09 16:28 0rails 多表关联 class Post < ... -
rails 测试 Rspec
2013-11-14 13:32 0在Gemfile中加入: group :test, ... -
rails 评论/回复插件 acts_as_commentable_with_threading
2013-11-13 19:04 1178acts_as_commentable_with_thre ... -
rails Rspec测试框架
2013-11-03 17:46 600Rspec rails的测试框架 ... -
rails 配置详解
2013-09-16 17:05 1200配置文件(config) 在Rails中,可以 ...
相关推荐
Ruby On Rails 官方教程,这本书讲解如何使用 Ruby on Rails 框架开发应用,以及如何把应用部署到生成环境。本书使用 Rails 默认的开发工具栈开发了一个完整的社交应用(类似 Twitter)。读完本书后你将掌握如何使用...
ruby on rails 入门教程 原书第二版, rails 3.2
ruby on rails 教程源码,配合原书使用
Ruby On Rails中文教材(PDF)
Ruby on Rails入门权威经典,分享给大家,很少的资源
《Ruby on Rails Tutorial》中文版(原书第2版,涵盖 Rails 4) Ruby 是一门很美的计算机语言,其设计原则就是“让编程人员快乐”。David Heinemeier Hansson 就是看重了这一点,才在开发 Rails 框架时选择了 Ruby...
Ruby on Rails Guides v2 - Ruby on Rails 4.2.5
Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 ...
ruby on rails视频教程 链接:https://pan.baidu.com/s/10eKsJLllLySXk-b5muV_Qw 密码见文件
Ruby on Rails入门经典代码,非常适合新手学习使用
欢迎学习《Ruby on Rails 教程》。本书的目标是成为对“如果想学习使用 Ruby on Rails 进行 Web 开发,我应该从哪儿开始?”这一问题的最好答案。学习完本书的内容之后,你将具备使用 Rails 进行开发和部署 Web 程序...
Ruby on Rails Tutorial 原书第三版中文版
ruby on rails社区网站开发源码
ruby on rails 入门级别教程,通过学习可以很快的搭建ror的服务器并运行起来
Ruby on Rails入门经典-例子,有很多rails工程实例。
ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作
全书共分17章,主要内容包括:搭建ruby on rails开发平台、ruby语言的基础知识(像控制语句、面向对象、数组和块等)、文件处理、数据库持久化、rails控制器和路由、视图模板以及发送邮件和ajax等。 《ruby on rails ...