新手RoR十分钟初体验Step By Step

本文提供了一个简单的Ruby on Rails (RoR)快速入门指南,包括安装Ruby、测试Ruby安装、使用gem安装Rails及其依赖项、创建并运行一个基本的Web应用程序等步骤。适合初次接触RoR的新手。

新手RoR十分钟初体验Step By Step

声明一下,这是个新手启动的体验文章,高手不要看了。。。:)

1、安装Ruby
Windows用户去 http://rubyforge.org/http://rubyforge.org/projects/rubyinstaller/ 下载 One-Click Installer - Windows 安装即可,最新版1.8.5-21

2、测试是否安装成功
建议一个Test.rb文件,内容如下

  1. hello="HelloRubyWorld."
  2. putshello

在命令行下运行 ruby Test.rb ,注意安装时%RUBY_HOME%\bin已经设置在你的PATH中了,检查一下即可,运行正确的话就会显示
Hello Ruby World.
结果出来

也可以启动FreeRIDE,新建一个文件,保存,按F5就可以运行得到结果了。在FreeRIDE的Edit菜单==>Preferences...==>Debugger/Run的右边,选中Run process in terminal,运行时可以打开新的窗口来查看,默认在FreeRIDE下面显示结果。

3、利用gem安装其它模块
在命令行下运行 gem install rails
安装提示与结果
Install required dependency activesupport? [Yn] y
Install required dependency activerecord? [Yn] y
Install required dependency actionpack? [Yn] y
Install required dependency actionmailer? [Yn] y
Install required dependency actionwebservice? [Yn] y
Successfully installed rails-1.1.6
Successfully installed activesupport-1.3.1
Successfully installed activerecord-1.14.4
Successfully installed actionpack-1.12.5
Successfully installed actionmailer-1.2.5
Successfully installed actionwebservice-1.1.6
Installing ri documentation for activesupport-1.3.1...
Installing ri documentation for activerecord-1.14.4...
Installing ri documentation for actionpack-1.12.5...
Installing ri documentation for actionmailer-1.2.5...
Installing ri documentation for actionwebservice-1.1.6...
Installing RDoc documentation for activesupport-1.3.1...
Installing RDoc documentation for activerecord-1.14.4...
Installing RDoc documentation for actionpack-1.12.5...
Installing RDoc documentation for actionmailer-1.2.5...
Installing RDoc documentation for actionwebservice-1.1.6...

再运行gem list检查一下看是否安装上去了,会有一堆列表显示,新的也在里面,安装前后各gem list一下,就可以对比得到以下结果

4、安装后各模块介绍
actionmailer (1.2.5) 邮件分发与测试模块,类似Java里的JavaMail的东东
actionpack (1.12.5) 类似于Web的MVC中的V与C
actionwebservice (1.1.6) Web Service支持
activerecord (1.14.4) ORM工具,类似Java中的Hibernate之类的
activesupport (1.3.1) Rails框架所依赖的一些基础工具类
rails (1.1.6) Web应用框架Rails包含模板引擎,控制层及ORM

5、默认安装后的模块有
fxri (0.3.3)
Graphical interface to the RI documentation, with search engine.
fxruby (1.6.1, 1.2.6)
FXRuby is the Ruby binding to the FOX GUI toolkit.
log4r (1.0.5) 日志库,Java中就象Log4J或Jakarta的Commons-Logging
rake (0.7.1) 类似make的工具,Java中就象Ant或Maven
sources (0.0.1)
This package provides download sources for remote gem installation
win32-clipboard (0.4.0)
A package for interacting with the Windows clipboard
win32-dir (0.3.0)
Extra constants and methods for the Dir class on Windows.
win32-eventlog (0.4.1)
Interface for the MS Windows Event Log.
win32-file (0.5.2)
Extra or redefined methods for the File class on Windows.
win32-file-stat (1.2.2)
A File::Stat class tailored to MS Windows
win32-process (0.4.2)
Adds fork, wait, wait2, waitpid, waitpid2 and a special kill method
win32-sapi (0.1.3)
An interface to the MS SAPI (Sound API) library.
win32-sound (0.4.0)
A package for playing with sound on Windows.
windows-pr (0.5.1)
Windows functions and constants predefined via Win32API

6、创建Web应用
在命令行下运行 rails rorweb ,会在rorweb目录下创建相应的一堆完整的Web应用的目录结构,然后你应该做的就是写你的程序了。
create
create app/controllers
create app/helpers
create app/models
create app/views/layouts
create config/environments
create components
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/mocks/development
create test/mocks/test
create test/unit
create vendor
create vendor/plugins
create tmp/sessions
create tmp/sockets
create tmp/cache
create Rakefile
create README
create app/controllers/application.rb
create app/helpers/application_helper.rb
create test/test_helper.rb
create config/database.yml
create config/routes.rb
create public/.htaccess
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/breakpointer
create script/console
create script/destroy
create script/generate
create script/performance/benchmarker
create script/performance/profiler
create script/process/reaper
create script/process/spawner
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/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

7、启动Web应用
进入rorweb目录,运行 ruby script\server 启动之,信息如下
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2006-11-25 08:47:44] INFO WEBrick 1.3.1
[2006-11-25 08:47:44] INFO ruby 1.8.4 (2006-04-14) [i386-mswin32]
[2006-11-25 08:47:44] INFO WEBrick::HTTPServer#start: pid=2564 port=3000

默认webrick服务器启用了3000端口,访问一下 http://localhost:3000 ,打开后可以看到如下之类的信息。
Welcome aboard
You’re riding the Rails!
About your application’s environment
点击查看:
Ruby version 1.8.4 (i386-mswin32)
RubyGems version 0.9.0
Rails version 1.1.6
Active Record version 1.14.4
Action Pack version 1.12.5
Action Web Service version 1.1.6
Action Mailer version 1.2.5
Active Support version 1.3.1
Application root X:/OpenSource/Ruby/rorweb
Environment development
Database adapter mysql

关于webrick服务器更多的信息可以访问 http://www.webrick.org/

8、写一个HelloRoR的Web程序
打开rorweb\app目录,可以看到四个子目录
controllers
helpers
models
views
一看就知道是什么作用了吧:)

仍在rorweb目录,运行 ruby script\generate controller HelloRoR 可以看到如下的创建信息
exists app/controllers/
exists app/helpers/
create app/views/hello_ro_r
exists test/functional/
create app/controllers/hello_ro_r_controller.rb
create test/functional/hello_ro_r_controller_test.rb
create app/helpers/hello_ro_r_helper.rb

创建一个app/views/hello_ro_r目录及三个文件

打开 hello_ro_r_controller.rb 进行编辑,增加内容后全部如下:

ruby 代码
  1. classHelloRoRController<ApplicationController
  2. defindex
  3. render_text"HelloRoRWorld"
  4. end
  5. defrails
  6. render_text"HelloRails"
  7. end
  8. end

访问 http://localhost:3000/hello_ro_r/ 就可以看到Hello RoR World结果了
访问 http://localhost:3000/hello_ro_r/rails 就可以看到Hello Rails结果了

注意是 hello_ro_r 不是HelloRoR,默认是小写,并写大小写之间用_分隔了,要注意一下,如果要进行对应,就全部小写建立应用,如:
运行 ruby script\generate controller helloror ,这样就是生成 helloror_controller.rb 了,然后访问 http://localhost:3000/helloror/

其它:1.8.4与1.8.5的区别
1.8.4
win32-clipboard (0.4.0)
win32-eventlog (0.4.1)
win32-process (0.4.2)
windows-pr (0.5.1)
1.8.5
win32-clipboard (0.4.1)
win32-eventlog (0.4.2)
win32-process (0.5.1)
windows-pr (0.5.3, 0.5.1)

1.8.5的升级:gem install rails
Bulk updating Gem source index for: http://gems.rubyforge.org
Install required dependency activesupport? [Yn] y
Install required dependency activerecord? [Yn] y
Install required dependency actionpack? [Yn] y
Install required dependency actionmailer? [Yn] y
Install required dependency actionwebservice? [Yn] y
Successfully installed rails-1.1.6
Successfully installed activesupport-1.3.1
Successfully installed activerecord-1.14.4
Successfully installed actionpack-1.12.5
Successfully installed actionmailer-1.2.5
Successfully installed actionwebservice-1.1.6
Installing ri documentation for activesupport-1.3.1...
While generating documentation for activesupport-1.3.1
... MESSAGE: Unhandled special: Special: type=17, text="<!-- HI -->"
... RDOC args: --ri --op F:/OpenSource/RoR/Ruby/lib/ruby/gems/1.8/doc/activesupport-1.3.1/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for activerecord-1.14.4...
Installing ri documentation for actionpack-1.12.5...
While generating documentation for actionpack-1.12.5
... MESSAGE: Unhandled special: Special: type=17, text="<!-- The header part of this layout -->"
... RDOC args: --ri --op F:/OpenSource/RoR/Ruby/lib/ruby/gems/1.8/doc/actionpack-1.12.5/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for actionmailer-1.2.5...
Installing ri documentation for actionwebservice-1.1.6...
Installing RDoc documentation for activesupport-1.3.1...
Installing RDoc documentation for activerecord-1.14.4...
Installing RDoc documentation for actionpack-1.12.5...
Installing RDoc documentation for actionmailer-1.2.5...
Installing RDoc documentation for actionwebservice-1.1.6...

9、中文截取问题测试
http://my.opera.com/sawpad/blog/show.dml/235183
从以上地址拿到程序放到 rorweb\lib\ 目录下

它的示例里有问题,我回复了它,可以在程序里调用如下,凑合着用,至少不会乱码:

ruby 代码

  1. u=USCutter.new("GBK")
  2. u1=USCutter.new("GBK")
  3. u2=USCutter.new("GBK")
  4. s="welove中文截取问题"
  5. s1=u.cut(s,0,10)
  6. s2=u1.cut(s,0,11)
  7. s3=u2.cut(s,0,12)
  8. putss1
  9. putss2
  10. putss3

记得JavaEye上线时也是乱码问题,现在解决了的,原来我给Robbin写过用JavaScript来解决乱码的问题,不知道Robbin后来如何解决的,搜了一下,没有发现解决方案?

10、接下来就是连接数据库做一个完整的开发之类的,待续。。。

此版本由Asion汉化,自己整合,foobar2000 v1.2.8增强版 集成DFX插件及其他最新音效插件,win8风格美化神作 特性: 1. Metro风格的界面。 2. 可显示一个比较大的封面。 a. 封面在播放时才可能会显示,鼠标在播放列表切换器或播放列表上时显示播放列表,否则显示封面。 b. 如果正在播放的曲目没有封面,则自动禁用。 3. 如果正在播放的曲目的码率是动态的,则每秒更新显示当前码率。 4. 正在播放时,任务栏标题滚动显示。 说明: 1. 在Foobar2000窗口内按住鼠标滚轮并拖动鼠标,可以移动窗口。 2. 右上角主菜单->文件->参数选项->显示->主窗口->不勾选“禁止调整窗口大小”,即可调整窗口大小。 3. 左上方“Playlist”和“Library”右边的箭头状按钮可以控制播放列表切换器的滚动条是否显示。 4. 显示播放列表的滚动条:在播放列表那里右键->设置->样式->滚动条->设成默认。 5. 正在播放时,双击右边中部标题、艺术家、专辑信息区域可以跳转到当前播放曲目。 6. 点击右下方按钮区域的“口”字形按钮可以切换是否显示大封面。 7. 如果控制台(快捷键为Ctrl+Shift+C)出现“UI Hacks: DLL-hijacking failed”,请在杀毒软件那里添加白名单。 8. 切换到下一首曲目时,屏幕右下角会显示相应的信息,5秒后会自动消失,如果左键单击这个信息框则立即消失。 9. 如果觉得播放列表没有滚动条不方便,又不想因为加入滚动条而破坏这个界面,可以考虑Home、End、PageUp、PageDown这四个按键快速导航。 感谢: Jensen(大部分代码都是参考Jensen大神的~) Michael Wong(进度条和音量条的代码编写)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值