欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

rails实战(一): Hello World篇 RailsRubyrubygems浏览器单元测试 

程序员文章站 2024-03-22 15:08:28
...

第一步、配置环境,不多废话,直接开始下列步骤:
1.到http://www.rubyonrails.org下载ROR的windows安装包
2.点击安装文件ruby184-20.exe,一路next完成安装
3.运行开始菜单->程序->Ruby-184-20->rubygems->RubyGems Package Manager进入命令行
4.gem install rails --include-dependencies安装rails
5.rails <你的程序开发路径>,浏览你的目录,发现生成一些不明文件,先不管它.
6.cd <你的程序开发路径>
7.ruby script/server
8.浏览器中敲入:http://localhost:3000,出现一些不明页面,表示你的配置环境已经okey.
9.完成测试
第二步、熟悉开发目录,查看自己指定的开发目录后一看,暴汗,这么多的目录,还是先学习一下文件目录好了
网上查阅了一些资料后收录如下:

1.app目录:我们日常的开发工作基本就在这里了
 controllers:子目录存放Rails要查找控制类。控制器处理来自用户的一个Web请求
 helpers:子目录持有所有用于支持模型,观察器,和控制器类的帮助类。帮助类可使模型,观察器,和控制器的代码小,专注,和整洁
 models:子目录存有模板和包装我们在应用程序数据库内存储的数据的类。在大多数框架中,应用程序的这一部分可会增长得非常杂乱,冗长,并更倾向于错误。Rails将它变得非常简单
 views:子目录存有用我们的应用程序的数据库填充有数据的显示模板
2.components:可重用的组件(太高深了,之后再做补充)
3.config:数据库连接参数控制
4.db:数据表信息
5.doc:自动生成的说明文件,估计类似于javadoc
6.lib:共享代码
7.log:程序运行的时候产生的日志文件
8.public:程序运行的时候真正运行的目录
9.script:没有搞明白.之后补充.
10.test:当然是单元测试了
11.vendor:第三方代码
看的有点晕,究竟是什么东西呢.继续探索中
第三步、查疑补惑
当然首先想搞清楚controller了,毕竟浏览器发出请求后要通过它来转发地。
所有的WEB请求的URL映射到一个控制器类内的一个方法,这个工作rails是怎么做到地,带着疑问我来继续查看文档。
1.ruby scriptgenerate controller MyDemo
发生了什么情况哦,命令行中显示如下:

      exists  app / controllers /
      exists  app
/ helpers /
      create  app
/ views / my_demo
      exists  test
/ functional /
      create  app
/ controllers / my_demo_controller.rb
      create  test
/ functional / my_demo_controller_test.rb
      create  app
/ helpers / my_demo_helper.rb



发现创建了一个app/controllers/my_demo_controller.rb,打开一看,代码如下:

    class  MyDemoController  <  ApplicationController
   end


2.在地址栏目敲入http://localhost:3000/My_Demo
发现显示
 

Unknown action
 No action responded to index

哦,有点明白了,类似于找不到index方法
3.my_demo_controller.rb中加入

 def index
  render_text 
" hello world "
 end

4.刷新,helloworld出来了。汗,一个rails的helloworld被我搞出来了,可是还是晕,什么都不明白哦
别着急兄弟,接着我会再写的,今天当玩了一票。晚上回去继续玩



刚才玩了一会后再看文档发现,哦,原来controller默认去寻找index了
http://localhost:3000/My_Demo等同于http://localhost:3000/My_Demo/index
同理我在my_demo_controller.rb中再添加一个方法index1
 def index1
  render_text  
"haha,the second helloworld" 
 end


http://localhost:3000/My_Demo/index1,哦,是不太一样了。
那我改为

  def index1
  render_text  
"哈哈,偶的中文您好" 
 end


刷新它,靠,跟以前java的破毛病难道一样,乱码问题又出来了吗?
我仔细看了看,哦,浏览器默认选择的是UTF-8,怪不得了,选择为gb2312后中文就出来了,吓了偶一跳啊。赶紧给大家贴出来