第一步:数据库准备 第一步:数据库准备第一步:数据库准备 第一步:数据库准备
(1)建库
create database chensite_development;
create database chensite_test;
create database chensite_production;
(2)建表。
drop table if exists users;
create table users (
id int not null auto_increment,
username varchar(20) not null,
password varchar(20) not null,
email varchar(50) not null,
createtime datetime not null,
primary key (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
LOCK TABLES users WRITE;
INSERT INTO users VALUES(1,'chen','111','glchengang@163.com','2007-04-11 23:59:59');
INSERT INTO users VALUES(2,'jack','222','jack@163.com','2007-04-12 23:59:59');
INSERT INTO users VALUES(3,'rose','333','rose@163.com','2007-04-13 23:59:59');
UNLOCK TABLES;
(3)第三步:创建一个能够显示数据库的页面。 (1)创建数据模型: app\models\user.rbclass User < ActiveRecord::Baseend
Rails命名约定:数据库为小写复命名约定: 文件名为小写单数user,类名为大写单数 User。另外, 如果数据库名为site_users,则文件名为,则文件名为,则文件名为, 则文件名为site_user, 类名为SiteUser。
模型类中不必定义属性,它会自动以数据库字段为。
(2)创建视图: views\homepage\index.html.erb, ,显示出user表所有记录的表所有记录的 表所有记录的id和name值
<html>
<body>
<h1>ChenGang's Site</h1>
<% for o in @users %>
ID:<%= o.id %>,而用户名是<%= o.username %><br/>
<% end %>
</body>
</html>
视图中用到的@users变量来自于我们己创建的如下控制器 中控制器的变量可以在视图使用。
class HomepageController < ApplicationController
def index
@users = User.find(:all)
end
end
注意,route配置:
Demo::Application.routes.draw do
root :to => "homepage#index"
match ':controller(/:action(/:id))(.:format)'
(4)增删改功能:
homepage_controller.rb增加修改
rails g scaffold user 生成包括类似下表
文件 | 说明 |
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 |