• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 
本文将教会你创建一个简单的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
刷新页面查看源代码:
 我们已经成功创建并使用了自己的模板!
 
 
 
 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Ruby以SOAP协议访问Webservice发布时间:2022-07-14
下一篇:
ruby--$:.unshift File.expand_path('..', __FILE__)发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap