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
刷新页面查看源代码:
 我们已经成功创建并使用了自己的模板!
 
 
 
 

转载于:https://www.cnblogs.com/newmin/archive/2010/10/10/ruby_on_rails_3_start_02.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值