http://yulimin.javaeye.com/blog/35929
关键字: rails Ruby Rails RoR新手RoR十分钟初体验Step By Step
声明一下,这是个新手启动的体验文章,高手不要看了。。。:)
1、安装RubyWindows用户去 http://rubyforge.org/ 的 http://rubyforge.org/projects/rubyinstaller/ 下载 One-Click Installer - Windows 安装即可,最新版1.8.5-21
2、测试是否安装成功建议一个Test.rb文件,内容如下
hello = "Hello Ruby World." puts hello在命令行下运行 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] yInstall required dependency activerecord? [Yn] yInstall required dependency actionpack? [Yn] yInstall required dependency actionmailer? [Yn] yInstall required dependency actionwebservice? [Yn] ySuccessfully installed rails-1.1.6Successfully installed activesupport-1.3.1Successfully installed activerecord-1.14.4Successfully installed actionpack-1.12.5Successfully installed actionmailer-1.2.5Successfully installed actionwebservice-1.1.6Installing 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与Cactionwebservice (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-Loggingrake (0.7.1) 类似make的工具,Java中就象Ant或Mavensources (0.0.1) This package provides download sources for remote gem installationwin32-clipboard (0.4.0) A package for interacting with the Windows clipboardwin32-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 Windowswin32-process (0.4.2) Adds fork, wait, wait2, waitpid, waitpid2 and a special kill methodwin32-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 aboardYou’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目录,可以看到四个子目录controllershelpersmodelsviews一看就知道是什么作用了吧:)
仍在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 代码 class HelloRoRController < ApplicationController def index render_text "Hello RoR World" end def rails render_text "Hello Rails" end 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.4win32-clipboard (0.4.0)win32-eventlog (0.4.1)win32-process (0.4.2)windows-pr (0.5.1)1.8.5win32-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 railsBulk updating Gem source index for: http://gems.rubyforge.orgInstall required dependency activesupport? [Yn] yInstall required dependency activerecord? [Yn] yInstall required dependency actionpack? [Yn] yInstall required dependency actionmailer? [Yn] yInstall required dependency actionwebservice? [Yn] ySuccessfully installed rails-1.1.6Successfully installed activesupport-1.3.1Successfully installed activerecord-1.14.4Successfully installed actionpack-1.12.5Successfully installed actionmailer-1.2.5Successfully installed actionwebservice-1.1.6Installing 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 代码
u = USCutter.new("GBK") u1 = USCutter.new("GBK") u2 = USCutter.new("GBK") s = "we love 中文截取问题" s1 = u.cut(s,0,10) s2 = u1.cut(s,0,11) s3 = u2.cut(s,0,12) puts s1 puts s2 puts s3
记得JavaEye上线时也是乱码问题,现在解决了的,原来我给Robbin写过用JavaScript来解决乱码的问题,不知道Robbin后来如何解决的,搜了一下,没有发现解决方案?
10、接下来就是连接数据库做一个完整的开发之类的,待续。。。