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

简介: http://yulimin.javaeye.com/blog/35929 关键字: rails   Ruby Rails RoR     新手RoR十分钟初体验Step By Step 声明一下,这是个新手启动的体验文章,高手不要看了。。。:) 1、安装RubyWindows用户去 http://r

http://yulimin.javaeye.com/blog/35929

关键字: rails   Ruby Rails 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 = "Hello Ruby World."  
  2. 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]  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. class HelloRoRController < ApplicationController   
  2.  def index   
  3.   render_text "Hello RoR World"  
  4.  end  
  5.  def rails   
  6.   render_text "Hello Rails"  
  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 = "we love 中文截取问题"  
  5. s1 = u.cut(s,0,10)   
  6. s2 = u1.cut(s,0,11)   
  7. s3 = u2.cut(s,0,12)   
  8. puts s1   
  9. puts s2   
  10. puts s3  

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

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

 
相关文章
|
Kubernetes 负载均衡 应用服务中间件
【K8S系列】第十三讲:Ingress详解
【K8S系列】第十三讲:Ingress详解
8232 0
|
11月前
|
缓存 网络协议 安全
融合DNS技术产品和生态
本文介绍了阿里云在互联网基础资源领域的最新进展和解决方案,重点围绕共筑韧性寻址、赋能新质生产展开。随着应用规模的增长,基础服务的韧性变得尤为重要。阿里云作为互联网资源的践行者,致力于推动互联网基础资源技术研究和自主创新,打造更韧性的寻址基础服务。文章还详细介绍了浙江省IPv6创新实验室的成立背景与工作进展,以及阿里云在IPv6规模化部署、DNS产品能力升级等方面的成果。此外,阿里云通过端云融合场景下的企业级DNS服务,帮助企业构建稳定安全的DNS系统,确保企业在数字世界中的稳定运行。最后,文章强调了全链路极致高可用的企业DNS解决方案,为全球互联网基础资源的创新提供了中国标准和数字化解决方案。
|
11月前
|
存储 安全 数据安全/隐私保护
深入解析iOS 14隐私保护功能:用户数据安全的新里程碑
随着数字时代的到来,个人隐私保护成为全球关注的焦点。苹果公司在最新的iOS 14系统中引入了一系列创新的隐私保护功能,旨在为用户提供更透明的数据使用信息和更强的控制权。本文将深入探讨iOS 14中的几项关键隐私功能,包括App跟踪透明性、简化的隐私设置以及增强的系统安全性,分析它们如何共同作用以提升用户的隐私保护水平。
669 3
|
11月前
|
监控 供应链 数据可视化
进度管理:如何确保项目按时完成?
在当今商业环境中,企业面临巨大市场压力,高效的进度管理成为项目成功的关键。进度管理不仅确保项目按时交付,满足客户需求,还涉及优化资源分配、降低风险、提升团队效率及确保项目目标与企业战略对齐。板栗看板等工具通过实时追踪、任务优先级管理和进度监控等功能,帮助企业实现高效进度管理,推动业务目标实现。
|
监控 搜索推荐 安全
探究亚马逊详情API接口:开发与应用
在数字化时代,亚马逊作为全球领先的电商平台,为商家和消费者提供了丰富的商品信息和便捷的购物体验。本文深入探讨了亚马逊详情API接口的获取与运用,帮助开发者和商家实时监控商品数据、分析市场趋势、优化价格策略、分析竞争对手、构建推荐系统及自动化营销工具,从而在竞争中占据优势。文章还提供了Python调用示例和注意事项,确保API使用的安全与高效。
400 3
|
C语言
如何避免 C 语言中的野指针问题?
在C语言中,野指针是指向未知内存地址的指针,可能引发程序崩溃或数据损坏。避免野指针的方法包括:初始化指针为NULL、使用完毕后将指针置为NULL、检查指针是否为空以及合理管理动态分配的内存。
|
传感器 人工智能 自动驾驶
未来出行新纪元:智能交通系统的崛起与影响
【10月更文挑战第13天】 本文深入探讨了智能交通系统(ITS)的发展背景、关键技术及其对社会、经济和环境的深远影响。通过对现有技术的评估和未来趋势的展望,揭示了ITS在提升交通效率、减少碳排放、增强安全性和推动经济发展方面的巨大潜力。同时,也讨论了在技术实施过程中面临的挑战和潜在的解决方案。
|
存储 监控 安全
SaaS业务架构:业务能力分析
【9月更文挑战第20天】在数字化时代,软件即服务(SaaS)模式逐渐成为企业软件解决方案的首选。SaaS 业务架构设计对于提供高效、可靠的服务至关重要。其核心业务能力包括:用户管理(注册登录、角色权限)、数据管理(存储备份、安全共享)、业务流程管理(设计定制、工作流自动化)、应用集成(第三方应用、移动应用)及客户服务(支持培训、反馈改进)。通过优化这些能力,可为企业提供更高效、可靠的 SaaS 服务。
302 11
|
机器学习/深度学习 传感器 人工智能
智慧矿山AI安全监管方案
智慧矿山AI安全监管方案通过集成AI技术,实现了对矿山环境、设备和人员的全方位智能监控与管理。该方案利用高清摄像头、传感器等设备实时采集数据,通过AI算法进行智能分析,提前预测安全隐患,及时发出预警,有效提升矿山安全管理水平。方案涵盖顶板与边坡监测、设备运行监测、人员行为识别等多个方面,旨在构建一个高效、安全的智能化矿山环境。
369 0
|
人工智能 JavaScript Apache
Github 2024-06-03 开源项目周报 Top15
本周Github Trendings共有15个项目上榜,按开发语言汇总,Python项目最多,共8项;TypeScript项目6项;HTML、Lua、Jupyter Notebook、Dart和C++各1项。亮点项目包括增强人类能力的开源框架Fabric,自托管游戏流主机Sunshine,以及多种AI驱动的工具和平台,如Khoj、Ente和Dataherald等。这些项目不仅在技术创新上有所突破,还在社区中获得了广泛的关注和支持。
564 0