• Ruby on rails3新手谈(2):简单的例子helloworld


     
    本文将教会你创建一个简单的ruby on rails3的网站并了解基本的controller,view,模板的用法!
    一:创建ror3 网站
    cd c:/www
    rails new myapp
    cd myapp
    rails server
    
    rails new 网站名称:创建一个新的网站,rails server:定位到网站根目录下开启网站服务
    rails会自动创建1个myapp目录并在myapp下创建网站所需的目录和文件
    在浏览器中输入地址:http://localhost:3000/ 结果如图下:
    二:创建控制器和视图
    ruby on rails是典型的MVC架构,模型,视图,控制器分别存放在 /app下的models,views,controllers下
    在controllers下创建helloword_controller.rb并写入代码:
    注:ruby on rails的控制器名称必须以controller结尾,用_连接控制器名称和controller
    class HelloworldController < ApplicationController
    def say
    end
    end
    我们在控制器中创建了一个空白的say方法,控制器的方法就是Action
     
    创建helloword视图目录及视图文件
    在views下新建文件夹:helloword,在helloworld文件夹下创建say.html.erb文件
    代码:say.html.erb
    hello world!
    
     写好了视图和控制器, 我们就可以在浏览器中查看页面,输入地址:http://localhost:3000/helloword/say
    但很抱歉结果出现路由不匹配错误!
     
    这是因为没有定义路由规则,打开routes.rb,文件存放在/config/文件夹下
    添加路由规则:match ':controller(/:action(/:id(.:format)))'
    代码:/config/routes.rb
    Myapp::Application.routes.draw do
       match ':controller(/:action(/:id(.:format)))'
    end
    
     
    重现刷新页面就出现如下页面:
    三:使用模板
    查看/helloword/say的源代码,我们会发现附加了许多html元素,这是因为我们使用了默认的模板
    默认模板存放路径:/app/views/layers/application.html.erb
    模板通过:<%=yield%>输出了hello world
    那是say.html.erb是怎么套用了模板的呢?
     
    我们再次查看控制器helloworld的代码:
    class HelloworldController < ApplicationController
    def say
    end
    end
    
    发现HelloworldController继承了ApplicationController,ApplicationController正是application.html.erb的控制器!
    ROR的控制器应该继承于ActionController::Base
    1.创建不使用模板的视图
    通过这个理论我们可以创建一个不使用模板的页面:
    代码:helloworld_controller.rb
    class HelloworldController < ActionController::Base
    def say
    end
    end
    
    再次刷新页面并查看源代码,源代码中只有了hello world!
    2.创建自己的模板
    创建模板视图:文件名:template.html.erb
    代码:/app/views/layers/template.html.erb
    <!DOCTYPE html>
    <html>
    <head>
    <title>template page,ror start - newmin - atnet.cc</title>
    </head>
    <body>
    <%=yield%>
    </body>
    </html>
    
    创建模板控制器:文件:template_controller.rb
    代码:/app/controllers/template_controller.rb
    class TemplateController < ActionController::Base
    end
    
     
    3.为页面添加模板
    我们在/helloworld/say/页面上使用模板template,只需要将控制器helloworldController 继承自模板的控制器 TemplateController
    代码:/app/controllers/helloworld_controller.rb
    class HelloworldController < TemplateController
    def say
    end
    end
    
    刷新页面查看源代码:
     我们已经成功创建并使用了自己的模板!
     
     
     
     
  • 相关阅读:
    线程、同步
    异常、线程
    Map
    List、Set
    Collection、泛型
    Object类、常用API
    h5-上传图片预览
    js 获取get参数
    《转》完美解决微信video视频隐藏控件和内联播放问题
    写入文件(覆盖文件的内容)
  • 原文地址:https://www.cnblogs.com/newmin/p/ruby_on_rails_3_start_02.html
Copyright © 2020-2023  润新知