本节实做用户注册的例子RegisterDemo,记录ROR开发的一般流程。
DB Prepare
参考以下图示代码:
C:\Documents and Settings\Nanigac> mysql -u root
mysql> create database rails;
mysql> grant all privileges on rails.* to ror@localhost identified by 'ror123';
mysql> flush privileges;
mysql> Aborted
命令行下创建数据库rails以及用户ror(密码ror123),赋予ror用户在rails数据库上的所有权限。
创建database.yml,内容如下图示(注意键值对冒号后面的空格):
development:
adapter: mysql
encoding: utf8
database: rails
pool: 5
username: ror
password: ror123
host: localhost
※
ROR系列所有实例,
创建WebAPP后
,
用database.yml
覆盖
WebAPP\config\database.yml
(DB配置文件)
Create RegisterDemo
命令行下切换到rorworks目录,敲入rails --database mysql RegisterDemo,命令行回显 :
create
create app/controllers
create app/helpers
create app/models
create app/views/layouts
create config/environments
create config/initializers
create config/locales
create db
create doc
create lib
create lib/tasks
create log
create public/images
create public/javascripts
create public/stylesheets
create script/performance
create script/process
create test/fixtures
create test/functional
create test/integration
create test/performance
create test/unit
create vendor
create vendor/plugins
create tmp/sessions
create tmp/sockets
create tmp/cache
create tmp/pids
create Rakefile
create README
create app/controllers/application.rb
create app/helpers/application_helper.rb
create test/test_helper.rb
create test/performance/browsing_test.rb
create config/database.yml
create config/routes.rb
create config/initializers/inflections.rb
create config/initializers/mime_types.rb
create config/initializers/new_rails_defaults.rb
create config/locales/en.yml
create config/boot.rb
create config/environment.rb
create config/environments/production.rb
create config/environments/development.rb
create config/environments/test.rb
create script/about
create script/console
create script/dbconsole
create script/destroy
create script/generate
create script/performance/benchmarker
create script/performance/profiler
create script/performance/request
create script/process/reaper
create script/process/spawner
create script/process/inspector
create script/runner
create script/server
create script/plugin
create public/dispatch.rb
create public/dispatch.cgi
create public/dispatch.fcgi
create public/404.html
create public/422.html
create public/500.html
create public/index.html
create public/favicon.ico
create public/robots.txt
create public/images/rails.png
create public/javascripts/prototype.js
create public/javascripts/effects.js
create public/javascripts/dragdrop.js
create public/javascripts/controls.js
create public/javascripts/application.js
create doc/README_FOR_APP
create log/server.log
create log/production.log
create log/development.log
create log/test.log
RegisterDemo创建成功,使用
DB Prepare
阶段创建的
database.yml覆盖掉新生成的config/database.yml。
下面测试数据库连接和ror开发环境 :
方法1:
在命令行下敲入ruby RegisterDemo/script/server webrick -p 80
显式启动webrick,回显:
=> Booting WEBrick...
=> Rails 2.2.2 application started on http://0.0.0.0:80
=> Ctrl-C to shutdown server; call with --help for options
[2009-02-22 19:21:31] INFO WEBrick 1.3.1
[2009-02-22 19:21:31] INFO ruby 1.8.6 (2008-08-11) [i386-mswin32]
[2009-02-22 19:21:31] INFO WEBrick::HTTPServer#start: pid=3468 port=80
启动IE,输入http://localhost/,点击页面About your application’s environment链接,可以看到当前ror环境如下图:
![](/upload/attachment/77641/0eb57f82-aca5-367e-b086-40edc0e514e3.jpg)
注意此时Database schema version是0,当前rails数据库没有任何migration 。
方法2:
命令行下切换到RegisterDemo目录,敲入rake db:migrate,回显如下图示:
(in C:/rorworks/RegisterDemo)
如果DB连接配置上有问题,将直接回显错误信息。
以上方法1或者方法2无错误输出表示ror环境和数据库准备就绪。
方法1和方法2有什么区别?方法2在C:\rorworks\RegisterDemo\db\下新建schema.rb,并create table "schema_migrations" ("version" varchar(255) NOT NULL) 。
接下来,开始数据库,以及页面的设计和编码 。
从最简单
RegisterDemo开始,设计两个页面(Login,Register),一个数据表User(三个字段uName,uPwd,uMail)。
命令行下切换到RegisterDemo目录,敲入命令ruby script/generate scaffold user uname:string upwd:string umail:string 如下图示:
C:\rorworks\RegisterDemo>ruby script/generate scaffold user uname:string upwd:string umail:string
exists app/models/
exists app/controllers/
exists app/helpers/
create app/views/users
exists app/views/layouts/
exists test/functional/
exists test/unit/
exists public/stylesheets/
create app/views/users/index.html.erb
create app/views/users/show.html.erb
create app/views/users/new.html.erb
create app/views/users/edit.html.erb
create app/views/layouts/users.html.erb
create public/stylesheets/scaffold.css
create app/controllers/users_controller.rb
create test/functional/users_controller_test.rb
create app/helpers/users_helper.rb
route map.resources :users
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/user.rb
create test/unit/user_test.rb
create test/fixtures/users.yml
create db/migrate
create db/migrate/20090223151258_create_users.rb
命令行下接着敲入rake db:migrate,回显图示,表users创建成功!
C:\rorworks\RegisterDemo>rake db:migrate
(in C:/rorworks/RegisterDemo)
== CreateUsers: migrating ====================================================
-- create_table(:users)
-> 0.0620s
== CreateUsers: migrated (0.0620s) ===========================================
此时
我们来看一下ROR完成了什么:
切换到命令行,可以看到users表被创建,desc users可以查看表结构。
mysql> use rails
Database changed
mysql> show tables;
+-------------------+
| Tables_in_rails |
+-------------------+
| schema_migrations |
| users |
+-------------------+
2 rows in set (0.00 sec)
命令行敲入ruby script/server webrick -p 80启动webrick。
C:\rorworks\RegisterDemo>ruby script/server webrick -p 80
=> Booting WEBrick...
=> Rails 2.2.2 application started on http://0.0.0.0:80
=> Ctrl-C to shutdown server; call with --help for options
[2009-03-04 19:53:26] INFO WEBrick 1.3.1
[2009-03-04 19:53:26] INFO ruby 1.8.6 (2008-08-11) [i386-mswin32]
[2009-03-04 19:53:26] INFO WEBrick::HTTPServer#start: pid=1652 port=80
浏览http://localhost/users/看到可以Listing users(0条记录)和New user的链接,并且在
New user页面可以
Create user
成功。
※原创版权所有,转载请Mail:Nanigac.Yin#Gmail.COM。